CakePHP 3.1.4 用のプラグインを作成したいと思います。ドキュメントは簡単ですが、例は機能しません ( http://book.cakephp.org/3.0/en/plugins.html#creating-your-own-plugins )
手順は次のとおりです。
composer create-project --prefer-dist cakephp/app sampleapp
データベースを作成します。データベースに接続します。テーブル「連絡先」を作成します。ディレクトリ内を移動し、次を実行します。
bin/cake bake plugin ContactManager
コントローラーを作成します。
bin/cake bake controller --plugin ContactManager Contacts
オートローダーを再生成します。
composer dumpautoload
次の行を /config/bootstrap.php ファイルに追加します。
Plugin::load('ContactManager', ['routes' => true]);
しかし今、ドキュメントは言う
「これまでに行ったことにアクセスしたい場合は、/contact-manager/contacts にアクセスしてください。連絡先モデルがまだ定義されていないため、「モデルが見つかりません」というエラーが表示されるはずです。
しかし、これはうまくいきません。代わりに、エラーが発生します。
コントローラーがありません。Cake\Routing\Exception\MissingControllerException. Cake\Routing\Dispatcher->dispatch ROOT/webroot/index.php、37 行目 エラー: ContactManagerController が見つかりませんでした。エラー: 以下のファイルに ContactManagerController クラスを作成します: src/Controller/ContactManagerController.php
これは、プラグインをロードできなかったことを意味します。それ以外の場合、これは示唆されません。「インクルード」の下で DebugKit を開くと、プラグインがプラグイン配列にありません。
composer.json ファイルを確認したところ、両方のプラグインが正しくリストされています。ベイク コマンドはエラーなしで実行されました。上記の手順を、名前の異なる複数の新しいプロジェクトで試しました。
ここで何が問題なのですか?どうもありがとうございました。