私はSlim3 APIを書いていますが、何らかの理由でスリムがコンポーザーで定義されている名前空間をロードしていません。Slim3 PSR-4オートローダー
ここにプロジェクトの構造があります。
FolderStruc:
projectApi
- composer.json
- src
- public
- index.php
- ProjectName
- Api
- Controllers
- Entities
- Commands
私の作曲ファイルパッケージとPSR-4オートローダの設定。
composer.json
{
"require": {
"slim/slim": "^3.0",
"symfony/yaml": "3.1",
"symfony/console": "3.1",
"symfony/process": "3.1",
"doctrine/orm": "^2.5",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/doctrine-cache-bundle": "^1.2",
"sabre/xml": "1.1.0",
"php-di/php-di": "@dev",
"php-amqplib/php-amqplib": "@dev",
"ramsey/uuid": "dev-master",
"monolog/monolog": "[email protected]",
"predis/predis": "~1.0.1",
"spipu/html2pdf": "^4.5",
"iio/libmergepdf": "~3.0"
},
"minimum-stability": "dev",
"autoload": {
"psr-4": {
"src\\ProjectName\\": "src/ProjectName/"
}
},
"autoload-dev": {
"psr-4": { "src\\ProjectName\\Tests\\": "tests" }
}
}
のindex.php
CategoryController
namespace ProjectName\Api\Controllers;
class CategoryController
{
/**
* @param \Slim\App $app
* @return array
*/
public function index(\Slim\App $app)
{
return ['Cats', 'Cats2', 'Cats3'];
}
}
** routes.phpの**
スリムは、名前空間\プロジェクト名\アピ\コントローラをロードに失敗$app->get('/v1/category/list', function (Request $request, Response $response) {
$response = $response->withHeader('Content-type', 'application/json');
$categoryCtrl = new \ProjectName\Api\Controllers\CategoryController();
});
\ CategoryController
と何が間違って起こっている任意のアイデア?
よろしく Danyal
私は、 "psr-4":{"src \\ ProjectName \\": "src/ProjectName /"} 'を' 'psr-4 ':{" ProjectName \\ ":" src "/ProjectName/"}' – Eineki
'composer dump-autoload -o'を実行して動作するかどうかを確認します。 –