その他 > その他 > コントローラーのカスタマイズ方法 |
その他
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nanasess |
投稿日時: 2019/4/9 12:27
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: コントローラーのカスタマイズ方法 ケースバイケースですね。。
大規模なカスタマイズをする場合、フォームの項目追加のみ拡張機能でやっていると保守性悪くなってしまいますし、 わかりやすい単純なカスタマイズのみであれば、拡張機能のほうが良い場合もあると思います。 引継ぎなどが発生した場合に、追いやすくすることが重要かなと思います |
liveinwood |
投稿日時: 2019/4/8 10:18
対応状況: −−−
|
新米 登録日: 2019/3/12 居住地: 投稿: 5 |
Re: コントローラーのカスタマイズ方法 ご意見ありがとうございます。
例えば既存フォームに項目を追加するような、ECCUBE(Symfony)の拡張機能だけで済むカスタマイズでも、本体のFormTypeを修正した方が良い、というお考えでしょうか。 |
nanasess |
投稿日時: 2019/4/7 10:10
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: コントローラーのカスタマイズ方法 引用:
このあたりはまだ発展途上なので、拡張機能だけで何とかするのは現状では難しいと思います。 (もちろん将来的には何とかできるようにしたいです) また、うまく拡張機能だけでカスタマイズできたとしても、バージョンアップ時の修正内容が干渉した場合は、手動でマージする必要があります。 バージョンアップが楽になるのは、単体テストや E2Eテストで検証が可能な場合です。 自動でテストできない状況であれば、カスタマイズ部分への影響を手作業で検証する必要があり、バージョンアップが楽になるとは言えません。 引用:
Decorator パターンで拡張しておいて、 DI で取得しているインスタンスを入れ替えることができれば良いのですが、、 本体では具象クラスのインスタンスを利用しているため、本体に手を入れる必要がありますね。。 このあたりがまだ発展途上なので、今後のバージョンアップで対応されれば良いなと思っています。 |
liveinwood |
投稿日時: 2019/4/5 21:48
対応状況: −−−
|
新米 登録日: 2019/3/12 居住地: 投稿: 5 |
Re: コントローラーのカスタマイズ方法 ご意見ありがとうございます。
1か2のどちらか一方に寄せるのではなく、状況に応じて使い分けるのが良いのでは?と勝手に納得しました。 ECCUBE(Symfony)が提供している拡張機能だけで実現できるなら、本体のコードを修正する必要はないわけですし、 それこそバージョンアップは簡単なはすですよね? どうしても本体のコードをいじる必要があるなら、app/Customizeに配置するのではなく、本体コードを直接修正するほうが 差分確認の点で有利ですから。 本題とは話がそれますが、リポジトリにメソッドを追加したり、PurchaseFlowのカスタマイズは本体コードを直接修正するしか方法がない認識であっていますでしょうか? |
nanasess |
投稿日時: 2019/4/5 18:14
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: コントローラーのカスタマイズ方法 app/Customize を使うと、カスタマイズした差分がわかりにくくなるので、本体をカスタマイズして Git でバージョン管理するのが好みです。
バージョンアップも git merge でできますし、差分も簡単に把握できます。 ご参考 https://qiita.com/nanasess/items/fe2a93ff64833d87eb19 app/Customize に置くと、バージョンアップを適用したい場合に手作業でマージする必要があります。 |
468 |
投稿日時: 2019/4/5 17:31
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: コントローラーのカスタマイズ方法 2.の手順が良いのではないかと思いますが、
修正する内容によっては、コントローラーをまるまるコピーする必要はないかと思います。 可能であれば、カスタマイズしたいメソッドのみ追記して、ルーティングを上書きするのが良いのではないかと思います。
|
liveinwood |
投稿日時: 2019/4/5 17:06
対応状況: −−−
|
新米 登録日: 2019/3/12 居住地: 投稿: 5 |
コントローラーのカスタマイズ方法 コントローラーのコードを修正しないと実現できないカスタマイズ要件の場合に、皆様がどのように対応しているのか、
どうするのがECCUBE的に正道なのか知りたいです。 私の思いつく方法としては次の2つの方法がありますが、どちらがよいのでしょうか。 他にもっと良い方法があるのでしょうか。 1.ECCUBE本体のコードを修正する 2.修正したいコントローラーのソースをapp/customize配下にまるまるコピーして、必要な箇所だけ修正する。 皆様のご意見いただけると幸いです。 よろしくお願いいたします。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |