如何在difirent文件夹上使用自动加载,并在另一个加载器上调用类[解决]

问题描述

我有一个这样的结构文件

dir/_
     |_index.PHP
     |
     |_app/--------|
                   |_init.PHP
                   |
                   |_core/----------|_class.PHP
                   |
                   |_abst/----------|_class.PHP

当我在 abst 文件夹上调用 class 时,这很好。 但是当我在 abst 文件错误的核心文件夹上调用类时

文件 index.PHP

<?PHP
include 'app/init.PHP';

use Core\Service\User;
$user = new User();

文件 init.PHP

<?PHP
spl_autoload_register(function($class){ //closure
    $class = explode('\\',$class);
    $class = end($class);
    require_once __DIR__.'/abst/'.$class.'.PHP';
});

spl_autoload_register(function($class){ //closure
    $class = explode('\\',$class);
    $class = end($class);
    require_once __DIR__.'/core/'.$class.'.PHP';
});

文件Abst-User.PHP,我称这个类

<?PHP
namespace Abst\Service;
class User{
    public function __construct(){
        echo "this name of class ".__CLASS__;
    }
}

和最后一个文件,Core-User.PHP

<?PHP
namespace Core\Service;
/**
 * 
 */
use Abs\Service\User as absUser;
class User{
    public function __construct(){
        echo "this name of class ".__CLASS__;
        new absUser;
    }
}

就我而言,结果是不同的文件名 谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)