PHP __autoload()来自下层目录

时间:2015-12-31 22:01:32

标签: php class subdomain

我是主网站和使用具有以下目录结构的子域的网站

主要网站:

/home/mysite/public_html/

子域名:

/home/mysite/subdomain/

我希望我的classes目录在主域和子域之间共享。这些课程都在这里:

/home/mysite/public_html/classes/

我正在尝试从子域目录中的文件中自动加载类

/home/mysite/subdomain/includes/bootstrap.php

包含此代码:

$classdir = '/home/mysite/public_html/classes/';

function __autoload($class_name) {
    var_dump($class_name);
    require_once ($classdir.$class_name.'.php');
}

我的问题是没有加载类。

请注意,在主域名目录中使用的文件中,此代码可以正常运行:

/home/mysite/public_html/includes/bootstrap.php

单独包含它们可以正常工作,例如:

require_once($classdir.'/class1.php');
require_once($classdir.'/class2.php');

然而,有几十个,我想自动加载它们

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

修正了spl_autoload_register()的问题,如下所示

$classdir = '/home/mysite/public_html/classes/';

function autoLoader( $class_name ){
    $path = $classdir . $class_name . '.php';
    include_once( $path );
}

spl_autoload_register( 'autoLoader' );