こんにちは!@vVv_kenshi_vVvです!
私のControllerの拡張方法を説明していきます。
ドキュメント読んで、手順通りに学んだわけではないので参考程度に見てください。
しっかり学びたい人は、Symfonyのドキュメントをお読みください。
Controller (Symfony Docs)
簡単なControllerのカスタマイズ
ここで説明する情報は既存機能のカスタマイズです。
本体フォルダ→拡張フォルダを見に行きRouteが同一の場合上書きされる性質をもつ
新規のControllerを作成する際は、既存で使用されていないか必ず確認してください。
会員登録や商品詳細をカスタマイズしたいなどで応用できます。
Controllerのカスタマイズが必要か確認
大規模か改修の際は必要
一覧画面:テーブルに追加した項目のみの処理は不要
データ取得は、EntityTrait
表示は、twig
バリデーションは、Form
Controllerのカスタマイズ手順
今回は、会員登録「EntryController」を例に解説していきます。
重要パス
- 拡張フォルダ:プロジェクト名/app/Customize/Controller/
- 本体フォルダ:プロジェクト名/src/Eccube/Controller/
- EntryController.phpをコピーし拡張フォルダへ保存
- ファイル名変更CustomEntryController.php
- 拡張ファイルへ変更
3について、
- namespaceの変更
- useでAbstractControllerの読込み
namespace Customize\Controller; use Eccube\Controller\AbstractController; class CustomEntryController extends AbstractController { }
確認方法
デバックするだけです。
/** * 会員登録画面. * * @Route("/entry", name="entry") * @Template("Entry/index.twig") */ public function index(Request $request) { dump('通過確認'); exit;
スピード重視型
デフォルトController全てコピー
既存メソッドを改修
新規メソッド追加
追加スタマイズの可能性もあるので、この方が楽
綺麗さ重視型
不要な読込みファイルの削除
不要なメソッドの削除
コメント