我正在考虑使用CodeIgniter作为我的下一个web应用程序的框架。但是,我已经定义了大量的助手类和数据结构。我可以将它们添加到应用程序的库中,但我必须重命名大量文件和类的名称以匹配criterion
我是否可以像在普通web应用程序上那样直接包含文件,绕过load->library()?或者该库是为常用的重用类预留的?
发布于 2009-11-07 03:58:46
如果您愿意,您可以直接包含它们。加载功能让事情变得更简单,但没有什么能阻止你在php中做一个标准的include。我已经用第三方类做过好几次了。
如果你还在寻找一个好的Kohana框架,CodeIgniter(一个分支)值得一试。在我看来,它比CodeIgniter要好得多。
发布于 2010-02-25 17:36:02
更好的做法是,在config.php (一个奇怪的地方,但相信我,这是最好的地方)的底部放置一个__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 );
}
}
}这样你就不需要担心东西是如何加载的了。按照预期使用核心库,并使用您的类,而不包含它们。您甚至可以开始将您的类转移到库中,而不需要太多地担心命名约定或加载器,并且lib可以是静态的、单例的,无论使用这种方法是什么。
发布于 2009-11-09 05:15:56
您不需要使用CodeIgniter的类加载器,您也可以像在任何web应用程序中一样对它们进行require,或者将它们包装在CI可加载的包装器中。在我自己的项目中,我有几个从基本控制器require的小型独立库,并且我包装了一些公共库(如Markdown),以用作标准CI库。
https://stackoverflow.com/questions/1689966
复制相似问题