我一直在测试我的包裹是否与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;
时,它一直说不找到
答案 0 :(得分:1)
您只需将自动加载器指向另一个目录:
"autoload": {
"psr-4": {"prodikl": "src/prodikl/"}
}
这意味着属于\prodikl
命名空间的&#34;类可以在src/prodikl/
目录中找到。&#34;
您可能还需要在命名空间名称上使用尾部反斜杠,不确定挑剔的Composer是如何关于它的:
"psr-4": {"prodikl\\": "src/prodikl/"}