我对 PHP 中的自动加载器和命名空间感到有些困惑。
我的课程组织在一个资产文件中,
-- Assets
-- user
-- User.php
-- database
-- Database.php
这只是一个简单的版本,每个文件夹中有更多的文件(即用户、数据库)。
无需担心供应商名称冲突,因为该项目中只有一个供应商(即我),但例如,使用 PSR0 自动加载器:
function autoload($className)
{
$className = ltrim($className, '\\');
$fileName = '';
$namespace = '';
if ($lastNsPos = strripos($className, '\\')) {
$namespace = substr($className, 0, $lastNsPos);
$className = substr($className, $lastNsPos + 1);
$fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
}
$fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
require $fileName;
}
我是否需要在每个类文件中声明一个命名空间并使用new user\User();
. 是不是可以通过使用来初始化它new user_User;
非常感谢