使用PSR-4找不到类

时间:2015-09-14 20:00:36

标签: php autoloader psr-4

我的composer.json文件中有一个PSR-4规范,如下所示

"autoload" : {
    "psr-4" : {
        "MyMVC\\" : "app/"
    }
},

enter image description here

以上是我的目录结构。在我的Core / Config.php文件中,我有类名为MyMVC\Core的类Config。 (仅以Config类为例,所有类都相同)。

现在在我的Config / config.php文件中,我正在使用下面的代码

<?php
use MyMVC\Core;

Config::$config['base_url'] = 'http://localhost/mymvc';

但这给了我错误的Class Config Not Found。如果我使用MyMVC\Core\Config;,问题可以解决。但它应该在不明确使用Config的情况下工作。由于框架用户可以添加应该自动加载的文件。

由于

1 个答案:

答案 0 :(得分:1)

use原语导入或别名命名空间或类。正如manual所述:

  

PHP支持三种别名或导入:别名类名,别名接口名和别名命名空间名。 PHP 5.6+还允许别名或导入函数和常量名称。

您的use语句是“别名命名空间”。所以

use MyMVC\Core;

与:

相同
use MyMVC\Core as Core;

因此在您的代码中:

Config::$config['base_url'] = 'http://localhost/mymvc';

应该是:

Core\Config::$config['base_url'] = 'http://localhost/mymvc';