Это моя структура проекта
api
|
PicoApi
|
managers
|
ApiManager.php
composer.json
index.php
Так выглядит мой композитор:
{
"autoload": {
"psr-0": {
"PicoApi\\": "",
"PicoApi\\Managers\\" : "managers"
}
}
}
Это мой 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()));
}
в моем ApiManager.php я включил: namespace PicoApi\Managers;
И все же я получаю сообщение об ошибке ApiManager.php.
При смене композитора на psr-4 он работает, но я хочу, чтобы он был psr-0.
Что я делаю не так?
Вы используете обозначение PSR-4, поэтому вам нужно использовать PSR-4. PSR-0 не позволяет пропустить путь между любыми частями имени класса. Если вы хотите использовать его, вам нужно переместить src/managers/ApiManager.php
в src/PicoApi/Managers/ApiManager.php
тогда
"psr-0": {
"PicoApi\\": "src"
}
api/PicoApi/managers/
но он должен быть в api/src/PicoApi/Managers/
ApiManager.php
, а неApiManagers.php
(в соответствии с тем, что вы вставили как структуру проекта)?