我在application/libraries
中为我使用的API创建了多个库。
API:
- Vimeo
- Flickr
现在,我已经在application/modules/apis/controllers/vimeo.php
和application/modules/apis/controllers/flickr.php
中创建了它们,它们将根据其他模块的请求与库进行交互。
问题是,现在我重新声明类:
-
librarys/Flickr.php:
Class Flickr { }
-
模块/api/controllers/flickr.php:
Class Flickr extends MX_Controller { }
所以我得到了我的apache2的错误日志:Cannot redeclare class Flickr in ...
编辑:
所以在我的modules/apis/controllers/flickr.php
文件中有:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
Class Flickr extends MX_Controller { ... }
我应该如何使用:
namespace controllers'blog
class user extends 'CI_Controller {
此处解释:http://codeigniter.com/forums/viewthread/212661/?
尝试做:
<?php
//TRIED:
namespace controllers'flickr;
namespace Flickr;
namespace modules'apis'controllers'flickr;
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
Class Flickr extends 'MX_Controller { ... }
$_ns = __NAMESPACE__;
但我没有从一个简单的函数中得到任何响应,该函数会回显"alex",在我调用控制器和函数的日志中也没有错误。
PHP 5.3增加了对名称空间的支持。CodeIgniter还不支持它们,但我确实在最近的论坛上发现了一篇帖子,声称有一个补丁可以让你使用它们。
http://codeigniter.com/forums/viewthread/212661/