在编码点火器中使用__autoload的最佳解决方案是什么(特别是对于性能和干净的代码)


What is the best solution( especially for performance and clean code ) to use __autoload in codeigniter?

我将在Codeigniter中使用__autoload函数,但我不确定最好的方法是什么。

我已经阅读了 Phil Sturgeon 的文章,他在配置的底部使用了.php我问我的朋友,他在索引中使用.php

但我认为它们不是干净的用法。

我想在钩子中使用它,但我读了这个答案(页面中的最后一个答案(如何将自动加载功能添加到代码点火器?并且对此投了反对票。

在钩子中使用不是好的解决方案吗?

如果你使用该框架,Codeigniter 的自动加载系统是更简单的方法:您只需将类名添加为数组的索引即可设置。

从技术上讲,它不是一个"正确的"自动加载器,它是一个注册表,用于检查类是否已在类的静态数组中实例化,如果没有,则添加它。在CI的工作方式中,它足够高效,更重要的是:对用户来说更容易,与任何php版本兼容,并且您无需编写任何代码即可实现它。

使用 __autoload(( 魔术方法的正确自动加载器,或者更好的使用 spl_autoload_register(( 意味着您需要将加载的类与加载 CI 的类分开,并且需要手动实现它。

对于面向未来的应用程序,请查看PSR-0标准,该标准为您提供了有关如何构建"标准"自动加载器的指示,该加载器用于在PHP世界的趋势中加载类:包管理和分发,类似于其他语言已经做的事情。