【发布时间】:2017-11-23 08:42:53
【问题描述】:
根据http://php.net/manual/en/language.oop5.autoload.php,魔术函数__autoload() 自 PHP 7.2.0 起已弃用,自 PHP 8.0.0 起已删除。
官方替代方案是spl_autoload()。见http://www.php.net/manual/en/function.spl-autoload.php。但是PHP手册并没有说明这个宝贝的正确使用方法。
我的问题:如何将这个(我的自动类自动加载器)替换为带有spl_autoload() 的版本?
function __autoload($class) {
include 'classes/' . $class . '.class.php';
}
问题:我不知道如何为该函数指定路径(它只接受命名空间)。
顺便说一下,SO 上有很多关于这个主题的主题,但没有一个提供一个干净简单的解决方案来取代我性感的单线。
【问题讨论】:
-
我在 PHP 文档中添加了一个基于上述示例的基本示例。希望这样的东西在未来不会那么难找。
-
PHP 手册一点也不烂。
-
@Shikiryu 好吧,老实说,确实如此。在大多数情况下,要理解某些东西是如何工作的并不容易,因为这些文档都是由铁杆书呆子编写的。即使您知道某些东西是如何工作的,也无法理解官方文档。更糟糕的是,在大多数情况下,官方文档都会被更正(!)并被大量的 cmets 重写。诸如 mysqli、cookie 或会话之类的东西很难找到,也很难理解。当您像示例中那样做时,您将失败。这是 IT 和开源的普遍问题:没有可用性。
-
我完全诚实。医生对我来说似乎很清楚。例如,对于这个特定的问题,选择的答案都写在 you 给出的页面上的“提示”部分中……但是现在,我刚刚看到你大约一年前问过,所以它可能已经改变了.
标签: php deprecated autoload spl-autoloader