为什么赢得我的Composer包自动加载?

时间:2017-04-16 17:40:34

标签: php composer-php

我一直在测试我的包裹是否与Packagist一起使用我制作的简单课程。每当我在一个不同的项目中需要它时,就说无法找到这个类。我的composer.json autoload阻止了什么问题?

这是我的项目回购文件结构

- src
    - prodikl
        - View.php
- .gitignore
- composer.json

这是我的 composer.json

{
  "name":"prodikl/simple-view",
  "description":"A simple to use, basic View object.",
  "require" : {
    "php" : ">=5.3.0"
  },
  "autoload": {
    "psr-4": {"prodikl": "src/"}
  }
}

最后,在我的 View.php

<?php

namespace prodikl;

class View
{
    ...
}

但每当我要求它进入一个项目并执行require "vendor/autoload.php"并使用use prodikl\View;时,它一直说不找到

1 个答案:

答案 0 :(得分:1)

您只需将自动加载器指向另一个目录:

  "autoload": {
    "psr-4": {"prodikl": "src/prodikl/"}
  }

这意味着属于\prodikl命名空间的&#34;类可以在src/prodikl/目录中找到。&#34;

您可能还需要在命名空间名称上使用尾部反斜杠,不确定挑剔的Composer是如何关于它的:

"psr-4": {"prodikl\\": "src/prodikl/"}