2016-01-21 151 views
2

我试图在作曲家中使用PSR-0而不是类作图,但有一些困难。看起来我的json文件是正确的,但我试图访问的类没有被拾取。是否有人可以看看,看看他们是否能发现我要去哪里错了:找不到作曲家自动加载和PSR-0的类

这是我在composer.json:

"autoload": { 
    "psr-0": { 
     "MartynBiz\\Slim3Controller\\": "src/" 
    } 
}, 

下面是我的文件夹结构:

$ tree . 
. 
|-- README.md 
|-- composer.json 
|-- composer.lock 
|-- phpunit.xml 
|-- src 
| |-- Controller.php 
| |-- Http 
| | |-- Request.php 
| | `-- Response.php 
| `-- Test 
|  `-- PHPUnit 
|   `-- TestCase.php 
`-- tests 
    |-- bootstrap.php 
    `-- library 
     `-- ControllerTest.php 

这里是我的控制器类:

<?php 
namespace MartynBiz\Slim3Controller; 

abstract class Controller 
{ 

而且,我可以证实,作曲家自动加载得离谱已包括pt。

+0

删除src后的斜线。然后尝试运行作曲家更新 –

+0

没有区别。根据作曲家的文档,它应该包含看起来最后的斜线 - https://getcomposer.org/doc/04-schema.md#psr-0 – Martyn

+0

哦,那么我将它改为PSR-4,它现在发现类:) PSR-4或PSR-0很好,我只是不想像classmap一样继续运行'composer dump-autoload'。 – Martyn

回答

2

改用PSR-4。 PSR-0要求前缀包含在文档树中(即src/MartynBiz/Slim3Controller/Controller.php)。