Version 6 (modified by nanasess, 16 years ago) (diff) |
---|
このページは書きかけです...
カスタマイズと移行の手引(v2.0)
EC-CUBE 2.0 では, 以前のバージョンより, 大幅なアーキテクトの変更を行いました.
これは主に, アップグレード時のマージ作業緩和, 自動アップデート機能実装のためと, より柔軟なカスタマイズを可能にするためです.
主な変更点
- ディレクトリ構成
- ディレクトリ構成が大きく変わりました.
- ディレクトリ構成(v2.0)
- data/lib, data/include 以下の関数群は, data/class/util, data/class/helper 以下のクラスへ移動しました.
- data/class/util 以下のクラスは, スタティック参照するユーティリティ系のクラスです.
- data/class/helper 以下のクラスは, 内部で他クラスのインスタンスを生成するヘルパークラスです.
- 以前のバージョンにおいて, html 以下のファイルに存在していた LC_Page クラスは, data/class/pages/LC_Page.php の LC_Page クラスを基底クラスとし, LC_Page クラスを継承して使用するようになりました.
- html 以下のファイルは, LC_Page クラスの init(), process(), destroy() を順に実行するのみの内容となりました.
- init() - 主にクラスの初期化をする関数
- process() - ページのメインロジック
- destroy() - デストラクタ. ページ処理の終了時に自動的に呼ばれる
- html 以下のファイルは, LC_Page クラスの init(), process(), destroy() を順に実行するのみの内容となりました.
- ディレクトリ構成が大きく変わりました.
- 定数, マスタデータの DB化
- 以前のバージョンで, conf.php に存在していた, ほとんどの定数や, マスタデータ系のグローバル配列は, データベースの mtb_* テーブルに移行しました.
- DB化に伴う DBアクセス低減のため, これらのデータは, data/conf/cache 以下にキャッシュされ, 実行時に使用されます.
- これらの定数, マスタデータは, 管理画面から修正可能です. 修正時に, data/conf/cache 以下のキャッシュが更新されます.
- 定数は, data/conf/cache/mtb_constants.php に生成されます. このファイルに生成される定数群は, DB アクセスする際に必要になるため, このファイルが削除されると DB アクセスもできなくなってしまいます.
DB アクセスができなくなると, mtb_constants.php 自身も生成できないため, data/conf/mtb_constants_init.php が data/conf/cache/mtb_constants.php にコピーされます.
このため, 一時的に定数群がセットアップ時の値に初期化 されてしまいますので, 管理画面のパラメータ設定から, データを登録し直して下さい. data/conf/cache/mtb_constants.php が DB に保存されたデータに更新され, 元通り使用することができます.
- 定数は, data/conf/cache/mtb_constants.php に生成されます. このファイルに生成される定数群は, DB アクセスする際に必要になるため, このファイルが削除されると DB アクセスもできなくなってしまいます.
- テンプレート機能の改善
- 従来のフロント画面のみならず, モバイル, 管理画面等, 「すべて」の画面のカスタムテンプレート作成が可能になりました.
カスタマイズの手引
EC-CUBE 2.0 からは, 以前のバージョンでの課題であった, バージョンアップ時におけるマージ作業が大幅に緩和されます.
また, 「自動アップデート」機能により, 配信サーバーによる自動的なバグフィックスや, バージョンアップが可能となりました.
是非, 以下の方法でカスタマイズを実施して下さい!
- data/class_extends 以下にカスタマイズ用のクラス群があります.
- 関数をカスタマイズする場合は, 必ず *_extends 以下のクラスで継承し, オーバーライドしてカスタマイズして下さい.
- EC-CUBE がバージョンアップした場合でも, これらのファイルは 更新されない ため, 煩わしいマージ作業から開放されます.
- 関数をカスタマイズする場合は, 必ず *_extends 以下のクラスで継承し, オーバーライドしてカスタマイズして下さい.
- html 以下のファイルを修正したい場合は, data/class/pages 以下を見て下さい.
- html と同じ階層構造になっており, LC_Page_ディレクトリ名_ファイル名.php というようなクラスファイルがあり, この中にロジックが詰まっています. しかし, このクラスをカスタマイズしてはいけません.
- data/class_extends/page_extends に, 同様の階層構造があります. LC_Page_ディレクトリ名_ファイル名_Ex.php というクラスファイルがあり, これらは data/class/pages のクラス群を継承しています.
- このクラスの, init(), process(), destroy() という関数をカスタマイズすることにより html 以下のファイルの動作を修正できます.
- index.php に対応するクラスのみ, LC_Page_ディレクトリ名_Ex.php というように, ファイル名及びクラス名が省略されています.
- EC-CUBE 2.0 では, 以前のバージョンのロジックを「ほぼそのまま」移植しているため, リファクタリングが不十分です. これは新規バージョンで徐々に改善していく予定です
- すべてのページの基底クラスである LC_Page クラスには, EC-CUBE の開発を行う上で, 有用な関数が多数含まれています.
- これらの関数は, LC_Page クラスを継承したクラスでのみ使用して下さい.
- sendRedirect(), getLocation(), getToken(), isValidToken() など, セキュリティを高めるための関数を積極的に使用して下さい.
- 詳しくは, data/class/pages/LC_Page.php の phpDoc コメントを見て下さい.
テンプレート機能の改善
EC-CUBE 2.0 からは, モバイル, 管理ページ を含む, すべての画面において, カスタムテンプレートが作成可能となりました.
- デフォルトのテンプレートは以下へ配置
- アップデート機能は, これらのファイルも上書きする
html/user_data/templates/default/js html/user_data/templates/default/css html/user_data/templates/default/img data/Smarty/templates/default -> メイン, ヘッダ/フッタ, その他 data/Smarty/templates/default/bloc -> ブロック data/Smarty/templates/default/cp -> キャンペーン用 メイン, ヘッダ/フッタ data/Smarty/templates/default/cp/bloc -> キャンペーン用 ブロック
- アップデート機能は, これらのファイルも上書きする
- 管理画面から修正可能なテンプレート, CSS
- これらのファイルは, アップデート機能はアクセスしない
- 管理画面から修正した場合のみ, 下記のファイルを参照する(common.css を除く)
- 下記のファイルを削除すると, default テンプレート or カスタムテン
プレートのファイルを参照する.
html/user_data/css/common.css -> CSS編集 html/user_data/include/bloc/*.tpl -> ブロック編集 html/user_data/include/*.tpl -> ヘッダ/フッタ編集 html/user_data/templates/*.tpl -> メイン編集 html/user_data/*.php -> 新規ページ作成 html/user_data/*.tpl -> 新規ページテンプレート
- カスタムテンプレートを作成する場合は, default の部分を他の名前に変更する.
- アップデート機能はカスタムテンプレートを上書きしない
- テンプレートの切り替えは, 定数の値を変更することで対応する
例) default -> custom- 管理画面から変更可能
- html/user_data/css/common.css は手作業で修正する必要あり.