PHP自动加载程序和名称空间
通常我会看到复杂的自动加载解决方案,要求用户在自动加载类时使用一组预定义的路径/目录来查看它们。或者他们有一个复杂的类似全局的搜索,然后构建一个缓存文件以减少查找时间等 但是,我注意到,只要您为每个类命名,并且这些名称空间与包含它们的目录结构相匹配,那么您的自动加载程序就不需要比这更复杂:PHP自动加载程序和名称空间,php,namespaces,autoload,Php,Namespaces,Autoload,通常我会看到复杂的自动加载解决方案,要求用户在自动加载类时使用一组预定义的路径/目录来查看它们。或者他们有一个复杂的类似全局的搜索,然后构建一个缓存文件以减少查找时间等 但是,我注意到,只要您为每个类命名,并且这些名称空间与包含它们的目录结构相匹配,那么您的自动加载程序就不需要比这更复杂: spl_autoload_register(function ($class) { include $class . '.php'; }); 假设您不必使用非命名空间的第三方类,是否有理由不根据文件
spl_autoload_register(function ($class) {
include $class . '.php';
});
假设您不必使用非命名空间的第三方类,是否有理由不根据文件夹结构命名您的类,然后让spl\U autoload\U register为您处理所有事情
这其中有我忽略的陷阱吗?
<?php
/**
* Ultra fast class autoloader.
*
* @param string $class
* Fully qualified class name (automatically passed to this magic function by PHP).
*/
function __autoload($class) {
static $ds = DIRECTORY_SEPARATOR;
$class = strtr($class, "\\", DIRECTORY_SEPARATOR);
require "{$_SERVER["DOCUMENT_ROOT"]}{$ds}src{$ds}{$class}.php";
}
?>