バージョン選択

フォーラム

メニュー

オンライン状況

34 人のユーザが現在オンラインです。 (18 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 33
umebius もっと...

サイト内検索

その他 > その他 > コントローラーのカスタマイズ方法

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
liveinwood
投稿日時: 2019/4/5 17:06
対応状況: −−−
新米
登録日: 2019/3/12
居住地:
投稿: 5
コントローラーのカスタマイズ方法
コントローラーのコードを修正しないと実現できないカスタマイズ要件の場合に、皆様がどのように対応しているのか、
どうするのがECCUBE的に正道なのか知りたいです。

私の思いつく方法としては次の2つの方法がありますが、どちらがよいのでしょうか。
他にもっと良い方法があるのでしょうか。

1.ECCUBE本体のコードを修正する
2.修正したいコントローラーのソースをapp/customize配下にまるまるコピーして、必要な箇所だけ修正する。

皆様のご意見いただけると幸いです。
よろしくお願いいたします。
468
投稿日時: 2019/4/5 17:31
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 1908
Re: コントローラーのカスタマイズ方法
2.の手順が良いのではないかと思いますが、
修正する内容によっては、コントローラーをまるまるコピーする必要はないかと思います。
可能であれば、カスタマイズしたいメソッドのみ追記して、ルーティングを上書きするのが良いのではないかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

nanasess
投稿日時: 2019/4/5 18:14
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 2014
Re: コントローラーのカスタマイズ方法
app/Customize を使うと、カスタマイズした差分がわかりにくくなるので、本体をカスタマイズして Git でバージョン管理するのが好みです。
バージョンアップも git merge でできますし、差分も簡単に把握できます。

ご参考
https://qiita.com/nanasess/items/fe2a93ff64833d87eb19

app/Customize に置くと、バージョンアップを適用したい場合に手作業でマージする必要があります。


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
スキルニル株式会社

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

liveinwood
投稿日時: 2019/4/5 21:48
対応状況: −−−
新米
登録日: 2019/3/12
居住地:
投稿: 5
Re: コントローラーのカスタマイズ方法
ご意見ありがとうございます。

1か2のどちらか一方に寄せるのではなく、状況に応じて使い分けるのが良いのでは?と勝手に納得しました。

ECCUBE(Symfony)が提供している拡張機能だけで実現できるなら、本体のコードを修正する必要はないわけですし、
それこそバージョンアップは簡単なはすですよね?
どうしても本体のコードをいじる必要があるなら、app/Customizeに配置するのではなく、本体コードを直接修正するほうが
差分確認の点で有利ですから。

本題とは話がそれますが、リポジトリにメソッドを追加したり、PurchaseFlowのカスタマイズは本体コードを直接修正するしか方法がない認識であっていますでしょうか?


nanasess
投稿日時: 2019/4/7 10:10
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 2014
Re: コントローラーのカスタマイズ方法
引用:

ECCUBE(Symfony)が提供している拡張機能だけで実現できるなら、


このあたりはまだ発展途上なので、拡張機能だけで何とかするのは現状では難しいと思います。
(もちろん将来的には何とかできるようにしたいです)

また、うまく拡張機能だけでカスタマイズできたとしても、バージョンアップ時の修正内容が干渉した場合は、手動でマージする必要があります。

バージョンアップが楽になるのは、単体テストや E2Eテストで検証が可能な場合です。
自動でテストできない状況であれば、カスタマイズ部分への影響を手作業で検証する必要があり、バージョンアップが楽になるとは言えません。

引用:

本題とは話がそれますが、リポジトリにメソッドを追加したり、PurchaseFlowのカスタマイズは本体コードを直接修正するしか方法がない認識であっていますでしょうか?


Decorator パターンで拡張しておいて、 DI で取得しているインスタンスを入れ替えることができれば良いのですが、、
本体では具象クラスのインスタンスを利用しているため、本体に手を入れる必要がありますね。。
このあたりがまだ発展途上なので、今後のバージョンアップで対応されれば良いなと思っています。


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
スキルニル株式会社

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

liveinwood
投稿日時: 2019/4/8 10:18
対応状況: −−−
新米
登録日: 2019/3/12
居住地:
投稿: 5
Re: コントローラーのカスタマイズ方法
ご意見ありがとうございます。

例えば既存フォームに項目を追加するような、ECCUBE(Symfony)の拡張機能だけで済むカスタマイズでも、本体のFormTypeを修正した方が良い、というお考えでしょうか。
nanasess
投稿日時: 2019/4/9 12:27
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 2014
Re: コントローラーのカスタマイズ方法
ケースバイケースですね。。
大規模なカスタマイズをする場合、フォームの項目追加のみ拡張機能でやっていると保守性悪くなってしまいますし、
わかりやすい単純なカスタマイズのみであれば、拡張機能のほうが良い場合もあると思います。

引継ぎなどが発生した場合に、追いやすくすることが重要かなと思います


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
スキルニル株式会社

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は54,049名です
総投稿数は94,128件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
2014
4
468
1908
5
yuh
1610
6
umebius
1398
7
red
1376
8
h_tanaka
939
9
fukap
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
780
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.