[英]Composer autoload psr-0 doesn't find class
This is my project structure 这是我的项目结构
api
|
PicoApi
|
managers
|
ApiManager.php
composer.json
index.php
This is how my composer looks like: 这是我的作曲家的样子:
{
"autoload": {
"psr-0": {
"PicoApi\\": "",
"PicoApi\\Managers\\" : "managers"
}
}
}
This is my index.php: 这是我的index.php:
//require Pico Api autoload
require 'vendor/autoload.php';
use PicoApi\Managers\ApiManager;
try {
//initialize the API
ApiInitializer::initialize();
//initialize a new Api with the request
$api = new ApiManager($_REQUEST['request']);
echo utf8_encode($api->processApi());
} catch (Exception $e) {
echo json_encode(Array(Error::jsonErrorField() => $e->getMessage()));
}
in my ApiManager.php I included: namespace PicoApi\\Managers;
在我的ApiManager.php中,我包括:
namespace PicoApi\\Managers;
And yet i get an error that it doesn't find ApiManager.php. 但是我收到一个错误,找不到ApiManager.php。
When changing the composer to psr-4 it does work, but I want it to be psr-0. 将作曲家更改为psr-4时,它确实可以工作,但我希望它为psr-0。
What am I doing wrong ? 我究竟做错了什么 ?
You are using the notation PSR-4 , so you need to use PSR-4. 您正在使用符号PSR-4 ,因此您需要使用PSR-4。 PSR-0 does not allow for an intercessory path between any portions of the class name.
PSR-0不允许在类名称的任何部分之间使用代调路径。 If you want use it you need move
src/managers/ApiManager.php
in src/PicoApi/Managers/ApiManager.php
then 如果要使用它,则需要将
src/managers/ApiManager.php
移动到src/PicoApi/Managers/ApiManager.php
然后
"psr-0": {
"PicoApi\\": "src"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.