ファイル構造

ホーム > EC-CUBEの基本 > ファイル構造

ファイル構造

2008年10月現在で、最新版であるEC-CUBE2.3.0(正式版)を基に御説明します。EC-CUBEのダウンロードページからEC-CUBEをダウンロードしたら、圧縮形式になっているので解凍します。
すると、以下のように「data」、「html」というディレクトリと「COPYING」というファイルが出現します。

COPYINGというファイルはテキストデータで、GPLライセンスの説明が記述されています。全部英語なので、解読はいつか現れるであろう英語の先生に全て託すことにします。お願いします。

さて、EC-CUBEは皆さんのサーバー環境などによってもどのようにインストールされるかという環境が異なりますので、ここでは一般的な話をします。
まず、ざっくりと説明すると、「data」ディレクトリはEC-CUBEの心臓ともいえるプログラム群が格納されています。「html」ディレクトリにはブラウザから直接アクセスされる、インターフェース的な役割のファイルが格納されています。

上記のような理由から、「data」フォルダ以下のファイルはWEBブラウザからはアクセスできない上位階層に配置し、「html」内のファイルWEBブラウザからアクセスできる、サーバー側の「httpdocs」や「public_html」直下に配置するのが一般的です。

「data」ディレクトリを開いてみましょう。すると下図のような構成になっています。

  • 「cache」ディレクトリ

    ここには、管理画面の「基本情報管理」の左側メニューにある「パラメータ設定」と「マスタデータ管理」で登録した内容がキャッシュ(PHPファイル)として保存されます。本来はデータベースに保持されているデータですが、サイト全体に関係する設定値なのでデータベースに負荷がかかり過ぎないように配慮されている仕組みです。

    編集時には一時的にデータベースから設定値が「パラメータ設定」または「マスタデータ管理」の画面に読み込まれ、設定を保存するとキャッシュとデータベース両方が更新されます。サイト全体のPHPはこのキャッシュファイルから設定値を読み込みます。

  • 「class」ディレクトリ

    EC-CUBEの心臓ともいえるプログラムが格納されています。ここにあるファイルを闇雲に料理するのはやめましょう。どうしても設定を変更したい場合は、次に説明する「class_extends」の中にあるファイルを調整します。

    2008年10月時点ではサービスが無くなってしまったようですが、「EC-CUBE自動アップデート」などのサービスを利用していると、この「class」ディレクトリ内のファイルが上書きされる恐れがあるので注意です。そういった理由からも、ここにあるファイルはカスタマイズの参考にはしますが、カスタマイズ対象にはしない方が無難です。

  • 「class_extends」ディレクトリ

    「class」ディレクトリとほぼ同じような構造をしていて、PHP初心者の方やカスタマイズを今から挑戦しようとするひとにとっては「何がどう違うの?」と混乱するところです。

    「class」ディレクトリ内のファイルは、先ほど説明したようにEC-CUBE公式のアップデートなどで上書きしなければならないような事が発生した場合、これまで一生懸命カスタマイズした内容が消えるか、考慮しながらアップデートしなければならないので非常にめんどうです。

    そこで、この「class_extends」の登場です!中にあるPHPをみると、なんだかほとんど中身がないようなファイルばかりですが、これはPHPの「継承」という仕組みを利用しているからです。「extend」という言葉は「拡張」だとか「延長」という意味なので、つまりは「classディレクトリの拡張ディレクトリ」みたいな感じです(どうやって拡張するのか?という疑問があるかと思いますが、それはこの家庭科を通して覚えていきましょう)。

  • 「downloads」ディレクトリ

    バックアップファイルやオーナーズストア経由で習得するモジュール群が格納されます。郵便番号のデータである「KEN_ALL.CSV」もここにあります。もし郵便番号のデータが古ければ、このファイルを差し替えて管理画面の「郵便番号DB登録」しましょう。文字コードに注意して下さい(UTF-8に変更する必要があります)。

    >> 詳しくは 「家庭科レシピ4 郵便番号のデータを最新のものにアップデートする」にて。

  • 「font」ディレクトリ

    なんかに使うフォントが入ってます。たぶん売上集計のグラフとかに使っているんでしょう。

  • 「include」ディレクトリ

    モバイル用の絵文字コードなどのファイルが格納されています。

  • 「logs」ディレクトリ

    EC-CUBEの簡易なアクセスログ、データベースログ、オーナーズストアログなどが格納されます。一生懸命カスタマイズした結果、「システムのエラーです。管理者になんとか云々」とか言われてしまって泣きそうになったときは、「責任者出て来い!」という前に、とりあえずこの中にある「site.log」を見ると原因が発覚します。ちなみに画面が真っ白になる場合は大概PHPのエラーなので、apacheのエラーログを見ると原因が発覚するでしょう。

  • 「module」ディレクトリ

    PHPの各種モジュールファイルが入っています。基本的にカスタマイズの対象にはならないでしょう。

  • 「pdf」ディレクトリ

    何かで使われるはずだったようなPDFファイルと、PHPファイルが格納されています。納品書生成機能で利用しているFPDFライブラリもここにあるようです。それと納品書生成機能で利用しているPDFテンプレートも「template_nouhin01.pdf」という名前で格納されているので、気に入らない場合は入れ替えるといいかもしれません(但し、あくまでもテンプレートなので、レイアウトを変える場合はPHPプログラムを調整する必要があります)。

  • 「script」ディレクトリ

    空メール登録で利用するPHPファイルが格納されています。・・・といいながら、空メール登録機能を一度も使ったことがないので、どう使うのかはよくわかりません。そのうち明らかになるでしょう。

  • 「Smarty」「smarty_extends」ディレクトリ

    Smarty(スマーティ)とは、PHPのテンプレートエンジンです。PHPは本来、プログラムとHTMLを混在して容易にプログラムを作れるのが特徴でしたが、プログラムとHTMLが混ざってしまうとメンテナンス性に欠けてしまいます。そこで、こういったテンプレートエンジンを使うことで、HTMLソース(テンプレート)とPHP(プログラム)を分離でき、デザイナーとプログラマが同時に開発を進められ、プログラムの可視性が良くなるメリットがあります。キャッシュも作られるので、至れり尽くせりですね!

  • 「install.php」ファイル

    今の状態では全く意味のないファイルですが、サーバーにインストールするとここにデータベースのID・パスワード、サイトの基本URLなど非常に重要なデータが記述されます。このファイルが「data」ディレクトリにあるので、「data」フォルダ以下はWEBブラウザからアクセスされないようにするべきです。

  • 「mtb_constants_init.php」ディレクトリ

    インストール時に1回だけ利用される「パラメータ設定」の初期値が記載されています。パラメータ設定値を変えるまでは、このファイルに記載されているPHP定数がサイト全体で読み込まれます。

  • 「require_base.php」「require_plugin.php」

    2.2.0beta以前には存在しないファイルだったので、2.3.0-RC1あたりから導入されたファイルかもしれません。EC-CUBEでは数多くの共有ファイルを読み込んでいますが、その設定がされているファイルです。

  • 「abouts」ディレクトリ

    「当サイトについて」のページです。会社概要みたいな感じ。

  • 「admin」ディレクトリ

    EC-CUBEの管理画面です。ブラウザに「http://ドメイン/admin/」とか入れるとログイン画面が出ます。

  • 「campaign」ディレクトリ

    キャンペーン関連ディレクトリです。

  • 「cart」ディレクトリ

    「カートの中」ページです。

  • 「contact」ディレクトリ

    「お問合わせ」ページです。

  • 「cp」ディレクトリ

    キャンペーンページ用です。キャンペーン登録すると、ここにコンテンツができます。

  • 「entry」ディレクトリ

    会員登録時の会員規約や入力フォームです。

  • 「forgot」ディレクトリ

    パスワードリマインダのページです。つまりは単純に「パスワードを忘れた方はこちら」のページなのさ~。

  • 「frontparts」ディレクトリ

    ログインチェックと、機能的なブロック(カテゴリ、ニュースなど)のPHPが格納されています。

  • 「inquiry」ディレクトリ

    アンケート関連のディレクトリです。

  • 「install」ディレクトリ

    EC-CUBEをインストール際に利用するディレクトリ。インストールが正常に完了したら、この中にあるindex.phpを削除しなければなりません。しかし、インストール後にindex.php以外は残しているけど、残している意味があるかどうかは不明です。

  • 「misc」ディレクトリ

    画像が入っていますが、どこでどう利用しているのか、見えない管理画面があるのか、そこには何か違う文明が発達しているのか・・・まったくもって不明です。

  • 「mobile」ディレクトリ

    PCサイトと同じURLに携帯電話からアクセスがあると、このフォルダ以下に転送されます。まぁ、なんて便利!

  • 「mypage」ディレクトリ

    その名の通り、「マイページ」です。誰が何と言おうと、私のページなのです。

  • 「order」ディレクトリ

    「特定商取引法に基づく表記」のページです。ECをする場合はちゃんと記述しましょう。カード決済の審査対象です。どうでもいい話ですが、夜中2時34分くらいに連呼すると、なんか出てきそうなページ名ですよね。「トクテイショウトリヒキホウニモトヅクヒョウキトクテイショウトリヒキホウニモトヅクヒョウキ・・・」

  • 「preview」ディレクトリ

    管理画面からプレビュー時に利用される?

  • 「products」ディレクトリ

    商品一覧、商品詳細のページがあります。

  • 「regist」ディレクトリ

    EC-CUBEの設定で、「会員登録時に、一旦仮会員になってから、本会員にする」という設定にしているとき、メールに記載されているURLにアクセスするとここに飛ぶようです。

  • 「rss」ディレクトリ

    巷で流行ってるRSSです。新着情報のフィードと、商品情報のフィードがあります。

  • 「shopping」ディレクトリ

    「cart」で「カートの中」にある商品を購入手続きにもっていくとアクセスするディレクトリです。つまり、支払方法やお届け先指定、購入完了までこのディレクトリ内で行われます。

  • 「tb」ディレクトリ

    トラックバック関連ディレクトリです。きっと。

  • 「upgrade」ディレクトリ

    よくわかりません。

  • 「upload」ディレクトリ

    商品を登録する際にアップロードする商品画像などが格納されます。

  • 「user_data」ディレクトリ

    デザインパッケージなどが格納されます。デザインテンプレートは通常「data/Smarty」以下に格納されますが、画像データやCSSファイル、デザイン管理から編集できる「ヘッダー・フッター」、「トップ」「商品一覧ページ」「商品詳細ページ」などのテンプレートはこっちに格納されます。ここ以下のファイルには管理画面の「コンテンツ管理」 -> 「ファイル管理」からもアクセスできます。

  • 「.htaccess」ファイル

    このファイルが使えるサーバーでは、いろんなことができます。EC-CUBEに初めから入っている.htaccessファイルには、PHPの扱えるファイルサイズなどの設定が描かれているだけですが、その他にもベーシック認証をかけたり、動的URLを静的URLに変更するテクニックにも使えます。

  • 「_default.php」ファイル

    管理画面のデザイン管理から「ページの新規作成」をした時にコピーされるPHPファイル。

  • 「define.php」ファイル

    「data」ディレクトリと「html」ディレクトリの相対関係(パス)を記述したファイル。もし「html」ディレクトリ以下に「data」ディレクトリを格納しなければならないようなときは、このファイルの設定変更を忘れずに。

  • 「index.php」ファイル

    言わずと知れたトップページ。

  • 「input_zip」ファイル

    管理画面で郵便番号DB登録をする時に利用されるらしい。

  • 「load_module.php」ファイル

    PHPで利用できる決済モジュールなどから入金有りなどの返事があった時に受け口になるファイルっぽい。

ECの「勝ち組」だけが知っている 売り上げUPの秘密はこちら