Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在对象创建期间加载PHP类而不必编写长的类名?_Php_Directory_Autoload - Fatal编程技术网

如何在对象创建期间加载PHP类而不必编写长的类名?

如何在对象创建期间加载PHP类而不必编写长的类名?,php,directory,autoload,Php,Directory,Autoload,我试图弄清楚如何在PHP中准确地自动加载类。在创建新对象时,我似乎总是不得不编写很长的类名。根据文件夹结构的不同,这有点烦人 define('APPLICATION_PATH', realpath('.')); function __autoload($class_name) { $path = APPLICATION_PATH . DIRECTORY_SEPARATOR . "lib" . DIRECTORY_SEPARATOR . $class_name . ".php";

我试图弄清楚如何在PHP中准确地自动加载类。在创建新对象时,我似乎总是不得不编写很长的类名。根据文件夹结构的不同,这有点烦人

define('APPLICATION_PATH', realpath('.'));

function __autoload($class_name)
{
    $path = APPLICATION_PATH . DIRECTORY_SEPARATOR . "lib" . DIRECTORY_SEPARATOR . $class_name . ".php";
    if (file_exists($path))
        require_once $path;       
}


$customer = new AppName\Models\Customer();
echo $customer->GetName();

$cr = new AppName\Repository\CustomerRepository();
echo $cr->GetName(); 
我知道我可以用一个use语句来缩短它,但是接下来我必须写一堆use语句


有更好的方法吗?或者可能是我遗漏了一些使它更简单的东西?

不,你要么写全名,要么写use语句