EC-CUBEのカスタマイズ案件をよく受けています。
4系になりカスタマイズする方法は大きく分けて3種ではないでしょうか?
- 本体をカスタマイズ
- 自作プラグインでカスタマイズ
- Customizeフォルダでカスタマイズ
初めてEC-CUBEのカスタマイズ案件を受けたのが3系で、どのようにカスタマイズするのかかなり悩みました。
##初めてのカスタマイズ案件(3系)
3系はCustomizeフォルダがないので、本体をカスタマイズするか、プラグインを自作するかの2択です。
そして、symfonyさえ触ったことのない状態で、ない頭をフル回転させて、プラグインでカスタマイズする方法を選択しました。
理由は以下の点です。
- 本体をいじるとバージョンアップが大変な点
- プラグインを作成すると、使い回しができる点
ちなみに、今でこそ少しgitを使ってますが、この時は使ったことがありませんでした。
まぁ、3系で作成したECは無くなってしまったのですが、良い経験にはなりました。
##2回目の案件から4系を使う
次に関わった案件のバージョンは「4.0.3」を利用しました。
(当時、最新のバージョン)
Customizeフォルダが用意されていたのは知っていたのですが、よくわからなかったので、ここでも自作プラグインでのカスタムを行いました。
理由は3系の時と変わりませんが、カスタマイズしていくうちに、少し疑問が湧いてきました。
その疑問は、プラグインとして作っても、このまま再利用(使い回し)できなくね?
実は2回目の案件の要件がかなり特殊で、同じようなカスタムは二度とないだろうと思ったのです。
###機能がてんこ盛りすぎて再利用が難しい
要件が多く特殊すぎて、全く同じ機能を必要とする案件がなさそうなので、使い回しが出来ないというか、する機会がないと思いました。
そして、次の案件で使うとしても、機能を削る、もしくは一部分を抜き出しながらでしか使えないです。
でも、影響する箇所が分かりずらく、ゼロから作った方が早いですよね。。。
そこでプラグインではなくて、Customizeフォルダを今度からは使おうと思いました。
##3回目の案件はCustomizeフォルダを使おうと思ったのだが
再利用しないのであれば、Customizeフォルダだけで行おうと思いました。
しかし、今度の要件がそれを拒んだのです。
EC-CUBEは会員と管理者の2グループですが、そこへもう1グループ増やす要件だったのです。
管理者とは別の権限で管理ページを作るって事で、色々調べて試行錯誤してましたが、Customizeフォルダではできませんでした。
結局プラグインでその後も作り続ける事になるのですが。
そして、たまにCustomizeフォルダも使ってます。
##カスタマイズだけ頼まれる
今までの案件は、ほぼ直受けでしたので基本的に自分だけしか触らないです。
だからどんなにくそったれでも、自分が管理するので好きなように作ってきました。
しかし、カスタマイズだけして、保守管理は自分でする必要がない案件なども出てきました。
そのような場合は、Customizeフォルダだけでカスタムするようにしています。
理由は以下になります。
- 自分が影響を与えた範囲を分かり易く伝えれる。
- プラグインのON・OFFなどされない。
ガッツリしたカスタムの内容ではないので、Customizeフォルダで対応出来ているというのもあります。
##今後どう考えているのか
まず自作プラグインでのカスタムは行わないようにしようと思っています。
理由は様々なのですが、大きな点は特殊な要件になる事が多いので、再利用する機会がないという事です。
(プラグインは多くのシステムで使わなければ、プラグインという恩恵が受けられないかもですね。)
だったらCustomizeフォルダでいいやってなるのですが、それも微妙です。
それは、「app/config」内の設定ファイルなどにも手を入れる事もあるからです。
バージョンアッププラグインなどが用意されるようになり、4.0.4から4.0.5へといったバージョンアップが簡単になりました。
しかし、上書きされる心配があるファイルのカスタムへも手を伸ばす事があるので、難しくなる時が来ます。
ということは、EC-CUBE Advent Calendar 202016日目のEC-CUBEのバージョンアップを見据えたカスタマイズ方法2020年度版を読み込むのが良いかと思ってます。
まぁ、状況や要件によって臨機応変に対応で良いかと思っていますので、基本的にはCustomizeフォルダを使ったカスタムを行おうと思っています。
でも、カスタムの要件が大きくなればなるほど、バージョンアップを見据えたカスタマイズ方法の記事が役立ってくるのも事実!!
gitの勉強、まだまだ続けなければ。。。
ただ書きなぐっただけの文章で、何を言っているのか分からない状態ですが、最後まで読んで頂き有り難うございます。