バージョンアップに備えたEC-CUBE開発手法
独自のカスタマイズを盛り込んだECサイトを展開したいショップオーナー様にとってEC-CUBEは非常に魅力的なツールですが、気をつけなくてはいけないのが、セキュリティホールが見つかった場合やバージョンアップ時の対応です。
EC-CUBEのプログラムソースに手を加えてしまったがためにセキュリティパッチの対応が難しくなってしまった。という方もいるかと思います。
システムカスタマイズの話になりますが、今日はそんなモヤモヤを抱えてEC-CUBEを運用している方に【extends】の紹介をしたいと思います。
extendsとは
EC-CUBEには(というよりもPHPなどのオブジェクト指向プログラミング言語には)extends(継承)という機能が備わっており、この仕組みを利用すると大元のプログラムソースを残したまま、システムのカスタマイズをすることができます。
EC-CUBEでもこの仕組みを全体的に取り入れており、元のソースを改変することなく、システムのカスタマイズが出来るようになっています。
「システムに業務を合わせる」妥協は終わりにしませんか。複雑な要件も100%叶える、ベンダー依存のない自社専用EC基盤を。
自社要件を相談する
どこにあるの?
EC-CUBEのプログラムが入っている「/data」ディレクトリを開くと大元のプログラム一式が格納されている「class」ディレクトリがあり、そのディレクトリと同じ階層に「class_extends」というディレクトリがあると思います。
このディレクトリ内には「class」に格納されているプログラム一式とそっくり同じ構成で、ファイル名に「_Ex」という文字を付加したプログラム一式が格納されています。EC-CUBEのシステムカスタマイズを行う場合は、この「_Ex」ファイルに修正を加えるようにすると、元のソースをそのまま残すことができ、セキュリティパッチやバージョンアップの対応時に改変したソースの場所を容易に特定することが出来るようになります。
簡単な実例
大元のプログラムである「/data/class/pages/mypage/LC_Page_Mypage.php」ではなく、それを継承した「/data/class_extends/page_extends/mypage/LC_Page_Mypage_Ex.php」に、以下のような追記をします。
function init() {
parent::init(); // 大元のinit()を実行
// フィーチャーホンの場合にのみ実行する処理
if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) {
$this->tpl_subtitle = 'フィーチャーホン専用ページです!';
}
}
このように、追加するプログラムソースを分離できる仕組みにより、自分で改変した部分も非常に分かりやすくなり、カスタマイズの仕様もプログラムソースから把握しやすくなります。
難点は追加するソースだけ継承ファイルに記述するために、直接大元のファイルを改変するよりも時間がかかってしまうことですが、今後、長い間そのシステムを運用していくのであれば、最初の段階でひと手間かけて管理をしやすくしておくことは非常に大事な事だと思います。
以上、駆け足でしたが、EC-CUBEカスタマイズのちょっとしたテクニックをご紹介させて頂きました。
それでは、また。
他の記事もご覧ください
-
「ECサイトとは?」「ECってどんな意味?」今さら聞けない素朴な疑問を分かりやすく説明!サイト制作や運営のポイントも詳しく解説します
ネット通販は私たちの暮らしにすっかり身近な存在となっていますが、皆さんは「ECサイト」というものについてどのくらい知っていますか?本稿ではECサイトの基本知識から成功するための実践的なポイント、おすすめのEC構築方法などを幅広く解説します。
-
EC(eコマース)とは?基礎知識からメリット・デメリット、成功戦略まで完全網羅
EC(eコマース)とは何の略?ネット通販との違いや仕組み、BtoB等のビジネスモデルを初心者向けに解説。メリット・デメリットや成功戦略を踏まえ、SaaS・スクラッチなど自社に最適なECサイト構築方法の選び方まで網羅した完全ガイドです。
-
ネットショッピング(オンラインショッピング)の仕組みとは?サイトの種類や歴史をプロが解説
ネットショッピング(オンラインショッピング)の仕組みや歴史、最新の利用率をプロが解説。ASPと構築型の違いや、2026年のトレンドであるAI・OMO活用事例まで網羅。これからショップを開業する方が知っておくべき「成功の正解」とは?
