#初めに
EC-CUBEは大きく分けて、プラグインを作成してストアで販売、もしくは野良プラグインとしてストア以外で販売するプラグイン作成者。
そして、EC-CUBEを利用してECを構築する会社、もしくはフリーランスエンジニアの2種類に分類できると思います。
ここでいうカスタマイズは、EC-CUBEを利用してECを構築する事を表します。
また、この記事の考え方は僕個人の意見になりますが、「ここはこうだろ」「こういう考え方の方が良い」「ここは違う」といった意見などあればコメント下さい。
僕が成長する糧とします。
この記事は、EC-CUBEの基本操作や基本構成を覚えた初心者の、次の一歩として書いています。
#プラグインとカスタマイズの違い
プラグインは不特定多数のサイトで利用される事が前提になります。
プラグインとサイトの完成は1対多の関係です。
カスタマイズは要求されたオリジナルの仕様に基づいて構築します。
カスタマイズの仕様とサイトは1対1の関係です。
ですので、プラグインについて知りたいという方は、この記事は参考になりませんので、別の情報をお求め下さい。
カスタマイズについて知りたいという方は、このまま引き続きお読みください。
#カスタマイズの方法
カスタマイズの方法は2種類あります。
1.app/Customize/にファイルを設置する方法
2.src/Eccube/の本体を直接編集する方法
僕は基本的に、1のCustomizeフォルダにファイルを設置する方法を選択します。
ちょっとしたカスタマイズであれば、ファイルを設置するだけですし、どの辺をカスタマイズしたのか分かり易いです。
バージョンアップする時も、本体を編集していなので、アップデートプラグインを利用する事が可能です。
(アップデートが正常に行かない場合もあります。しっかりテスト環境でお試ししましょう。)
2の本体を直接編集した場合は、カスタマイズ箇所が分かり難かったり、バージョンアップするにはgitを使ったバージョン管理をしなければ、難しいです。
本体をカスタマイズする場合は、「EC-CUBEのバージョンアップを見据えたカスタマイズ方法2020年度版」の記事を参考にしてください。
玄人の方法になります。
どちらを選択するかは、開発環境(チームなのか、ソロなのか)やカスタマイズの規模など様々な要素が関係すると思います。
その辺の見極めは、経験がものを言うでしょう。
##フォルダ構成
Customizeフォルダにファイルを設置するといっても、適当に設置してはダメです。
じゃぁ、どんな設置方法がいいのか、それは・・・EC-CUBE本体を参考にして同じ構成にしましょう。
迷ったらEC-CUBE本体をよく参考にしてます。(プログラムなども)
よく使うフォルダは下記になります。
- Command
- Controller
- Doctrine
- Entity
- EventListener
- Form
- Repository
- Resource
- Service
- Twig
必ず設置しなければならない、といった事はないです。
必要な時に必要な物を設置しましょう。
##テンプレートの設置方法
本体のテンプレートは以下に設置されています。
フロント
src/ECcube/Resource/template/default/
管理画面
src/ECcube/Resource/template/admin/
カスタマイズしたいテンプレートファイルを、以下のフォルダへ移動して編集します。
新しくページを作成したい場合も同様に、新しいテンプレートファイルを追加します。
フロント
app/template/default/
デフォルトテンプレート以外を利用している場合。
app/template/[テンプレートコード]/
管理画面
app/template/admin/
フロントに新しいページを追加する場合は、データベースにデータを追加しなければならないのですが、それは別途説明記事を作ります。
##命名規則
プラグインの命名規則になりますが、カスタマイズでも同様の規則を利用した方が安全です。
僕はまんま、customizeを接頭辞として利用しています。
#最後に
カスタマイズは唯一無二で、他の案件に流用しない事を前提で考えてください。
もちろん、使えそうな部分はコピペして流用すればよいのですが、プラグインのようにポン付け出来ない感じです。
マニアックで濃いカスタマイズの内容でない限り、大体の事はCustomizeフォルダで事足ります。
(僕の経験の中だけですが。。。)