Sli*_*liq 19 php deprecated autoload spl-autoloader
据http://php.net/manual/en/language.oop5.autoload.php神奇功能__autoload()将在即将到来的PHP版本变得过时和已删除(!).官方替代方案是spl_autoload().见http://www.php.net/manual/en/function.spl-autoload.php.但是php手册没有解释这个宝宝的正确使用方法.
我的问题:如何替换这个(我的自动类自动加载器)
function __autoload($class) {
include 'classes/' . $class . '.class.php';
}
Run Code Online (Sandbox Code Playgroud)
使用spl_autoload()的版本?问题是:我无法弄清楚如何给该函数一个路径(它只接受命名空间).
顺便说一下:SO.com上有很多关于这个话题的主题,但没有一个提供干净简单的解决方案来取代我的性感单行.
lon*_*day 36
您需要注册自动加载功能spl_autoload_register.你需要提供一个"可调用的".从5.3开始,最好的方法是使用匿名函数:
spl_autoload_register(function($class) {
include 'classes/' . $class . '.class.php';
});
Run Code Online (Sandbox Code Playgroud)
这种反对的主要优点__autoload当然是你可以spl_autoload_register多次调用,而__autoload(像任何函数一样)只能定义一次.如果您有模块化代码,这将是一个重大缺陷.
2018年对此进行更新:当你需要推出自己的自动加载器时,应该没有多少次.有一个被广泛接受的标准(称为PSR-4)和几个符合要求的实现.这样做的显而易见的方法是使用Composer.
| 归档时间: |
|
| 查看次数: |
39948 次 |
| 最近记录: |