第1章 MVC-L 入門

1.1 はじめに

OpenCartは、PHPの一般的なWEBフレームワークを理解している開発者にとって、すぐれたプラットフォームです。MVC構造に沿って作られているため、習得が容易です。OpenCartは、あなたが使い慣れたPHP,MySQL,HTMLなどの技術を活かして、MVC構造を学ぶ事が出来ます。

このガイドでは、基本的なHTML, CSS, JavaScript, PHP(クラスや継承を含む), MySQLの使い方を理解していると想定して記述しており、それらの知識がOpenCart内でどのように使用されるかを解説します。

1.2 MVC(L)

OpenCartはMVCデザインパターンに沿って設計されています。MVC(モデル、ビュー、コントローラ)の各要素は、以下のようにブレークダウンできます。

1.2.1 M - モデル(Model)

「モデル」は、データベースとやり取りしたり、フロントエンドに適した形式に変換したりする役目を担います。これは通常、主にDBクエリやその他のコードで構成されます。もしあなたがMySQL用のクエリを書いた事があれば、OpenCartでもその方法を使う事ができます。OpenCartはORM(訳注:ORマッパー)を使用していませんが、データベースへのクエリを直接書く事ができます。

1.2.2 V - ビュー(View)

「ビュー」は、MVCパターンの表示部分を担います。MとCの考え方は、可能な限りロジック部分をビューの外に出し、テンプレートをシンプルにします。あなたのストアを再デザインする時は、ビュー部分だけを変更すればよく、MやCやLはそのままでよいでしょう。OpeCartのビューファイルは、「.tpl」という拡張子がつきます。

1.2.3 C - コントローラ(Controller)

「コントローラ」は、モデルを使ってデータを取り出したり、インストーラやモジュールで設定した値を参照したりして、それらを適切な(場合により複数の)ビューに渡して表示します。

1.2.4 L - 言語(Language)

OpenCartでは、MVCをMVCLに拡張し、言語固有の情報とそれ以外を分離させて、国際化を容易にしています。言語ファイル内のテキストは、ヘッダやタイトルやボタンの文字列などに使用できます。そのため、あなたのストアを国際化したい場合、言語ごとに一つのファイルを修正(訳注:あるいは追加)するだけで済みます。

1.3 ディレクトリ構造

OpenCartのディレクトリ構造は、2つの重要なパーツに分かれています。

フロントエンド(訳注:お客様の見る画面)と、管理画面があり、それぞれ、OpenCartのインストールしたフォルダの最上位に位置します。フロントエンドのフォルダは「catalog/」、管理画面のフォルダは「admin/」です。フロントエンドを変更したい場合は、catalog/フォルダ内だけを変更するだけで済みます。管理画面を変更したい場合は、admin/だけを変更すればよく、catalog/フォルダは変更不要です。

catalog/フォルダも、admin/フォルダも、それぞれOpenCartの基本フォルダ構成であるモデル、ビュー、コントローラ、言語ファイルを含んでいます。

その他にも、いくつかのフォルダがOpenCartのインストール時に作成されます。Several other folders exist in your OpenCart installation.

system/フォルダは、フロントエンドと管理画面の両方で使う関数やクラスが格納されています。例えば、メールヘルパー、データベースヘルパー、コントローラのコア部分の定義、モデルやOpanCartのエンジンやライブラリクラスなどです。OpenCartの機能を変更する場合でも、system/フォルダの中身を編集する必要はほとんどありません。

image/フォルダは、イメージマネージャからアップロードされたすべての画像が格納されています。例えば、商品の画像、追加の画像、OpenCartがリサイズした画像のキャッシュなどです。

download/フォルダは、商品に紐づくダウンロード販売用ファイルが格納されます。ダウンロード用ファイル名には、悪意あるユーザがファイル名を推測して直接アクセス出来ないように、ハッシュ化された接尾辞が付けられます。このディレクトリ内のダウンロード用ファイルの名前にランダムな文字列がついているのは、上記の理由によるものです。