Php CodeIgniter-将现有类与CodeIgniter一起使用,直接包含它们有任何问题吗?

Php CodeIgniter-将现有类与CodeIgniter一起使用,直接包含它们有任何问题吗?,php,codeigniter,Php,Codeigniter,我正在考虑使用CodeIgniter作为我下一个web应用程序的框架。但是,我已经定义了大量的助手类和数据结构。我可以将它们添加到应用程序的库中,但我必须重命名大量文件和类的名称以匹配 我是否可以像处理普通web应用程序一样,绕过load->library()直接包含文件?或者该库是为常用的重用类保留的?如果您愿意,可以直接包含它们。加载功能使事情变得更容易,但没有什么能阻止您在php中执行标准的include。我已经用第三方类做过几次了 如果您仍在寻找一个好的PHP框架,那么(CodeIgni

我正在考虑使用CodeIgniter作为我下一个web应用程序的框架。但是,我已经定义了大量的助手类和数据结构。我可以将它们添加到应用程序的库中,但我必须重命名大量文件和类的名称以匹配


我是否可以像处理普通web应用程序一样,绕过load->library()直接包含文件?或者该库是为常用的重用类保留的?

如果您愿意,可以直接包含它们。加载功能使事情变得更容易,但没有什么能阻止您在php中执行标准的include。我已经用第三方类做过几次了


如果您仍在寻找一个好的PHP框架,那么(CodeIgniter的分支)值得一看。在我看来,它比CodeIgniter好得多。

您不需要使用CodeIgniter的类加载器,您也可以像在任何web应用程序中一样要求它们,或者将它们包装在CI可加载的包装器中。在我自己的项目中,我有一些小型的独立库,我需要从我的基本控制器中获得这些库,并且我包装了一些公共库(比如Markdown),作为标准CI库使用。

更好的是,在config.php的底部放一个
\uu autoload()
(一个奇怪的地方,但相信我,这是最好的)让它签入应用程序/类/然后检查应用程序/函数

/*
| -------------------------------------------------------------------
|  Native Auto-load
| -------------------------------------------------------------------
| 
| Nothing to do with config/autoload.php, this allows PHP autoload to work
| for controller types and some third-party libraries.
|
*/
function __autoload($class)
{
    if(strpos($class, 'CI_') !== 0)
    {

        $lib = APPPATH . 'libraries/'. $class . EXT;
        $class = APPPATH . 'classes/'. $class . EXT;            

        if(file_exists($class))
        {
            include_once( $class );
        }
        else if(file_exists($lib))
        {
            include_once( $lib );
        }
    }
}

这样你就不必担心东西是如何加载的。按照预期使用核心库,使用类时完全不包含它们。您甚至可以开始将类移动到库中,而无需太多地担心命名约定或加载程序,而libs可以是静态的、单例的,无论使用这种方法是什么。

Phil,首先感谢自动加载的想法。第二,如果有机会,请修复上面的代码,除非我错了,$class正在被重用,因此$lib将与上面一行中的$class连接,因此$lib将是错误的位置。希望这是有意义的,再次感谢。不,代码没有错。不管怎么说,你明白了,我可以用100种不同的方式写同样的自动加载100次,然后让它做同样的事情。