ディレクトリ構成
- ディレクトリ、ファイル数が多いので今回変更するディレクトリ、ファイルのみ表示
- composer を bin/ 以下で使用できるようにインストール
bin/
└ composer
composer.json
src/
├ infrastructure/
│ └ routes.php
├ interfaces/
│ └ controllers/
│ └ IndexController.php
└ domain/
└ User.php
サンプル
composer.json
namespace を使う時は下記を追加する
{
"autoload-dev": {
"psr-4": {
"Src\\": "src/",
}
}
}
routes.php
Container Resolution のようにコントローラーに namespace を使う場合は use \Src\Interfaces\Controllers\IndexController; は使えないので下記のようにする。
$app->get('/', '\Src\Interfaces\Controllers\IndexController:get');
IndexController.php
namespace Src\Interfaces\Controllers;
use Interop\Container\ContainerInterface;
use Slim\Http\Request;
use Slim\Http\Response;
use Src\Domain\User;
class IndexController
{
private $container;
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
public function get(Request $request, Response $response, array $args)
{
$user = new User;
var_dump($user);
}
}
User.php
namespace Src\Domain;
class Me
{
public $id = 0;
public $screenName = '';
public $displayName = '';
}
ビルド
- composer install や新たにパッケージをインストールした。
- namespace の行を書き換えた
- namespace を使用するファイルを新しく作成した。
上記操作を行った場合に下記コマンドを実行する。
まだ一度も下記コマンドを実行していない場合も実行する。
$ bin/composer dump-autoload -o