今さら聞けないWeb(制作現場に出てくる)用語集 第 2 回 PHPフレームワーク編
心底寒いですね、ichikawaです。
今さら聞けないWeb(制作現場に出てくる)用語集第 2 回は「PHPフレームワーク編」です。
(今回ご紹介する用語の中には、幅広い意味を持つ用語もあります。使い方など一部に限定して紹介している部分もありますので、ご了承ください。)
フレームワーク
何かアプリケーションを作ろうと思った時、どんなアプリケーションでもたいてい必要な機能ってありますよね?
例えばログイン機能やデータの登録機能など。
フレームワークは、そのようなよく使う機能などをひとまとめにしたセットです。
基本的な機能が備わっていることから、「土台」「雛形」「枠組み」なんて言われます。
すべてを1から作るのは大変ですが、フレームワークを利用することにより、独自に必要な部分だけ開発すればよくなるので、効率的にアプリケーションを作ることができます。
言語により色々なフレームワークがありますが、PHPで有名なフレームワークは「symfony」「CakePHP」「Zend Framework」などです。
MVCモデル
MVCモデルとは、アプリケーションをModel・View・Controllerの3つに分割し設計する方法、またはそのような構造のことを指します。
多くのフレームワークでは、このMVCモデルの考え方が取り入れられています。
メソッド
オブジェクト指向プログラミングにおける「手続き」「振る舞い」などど紹介されている事が多いようですね。
車で例えてみると…
「プリウス」というクラス(設計図)がある時、「アクセル」「ブレーキ」という機能はメソッドとなります。
簡単に言うと、「ひとまとまりの処理を行ってくれる機能」です。
ライブラリ
ライブラリとは、本体プログラムの機能に「追加するための部品(プログラムの集合体)」のようなものです。
例えば、PHPにはPEARという有名なライブラリがあります。
「データベースを操作」というような汎用的に使えるライブラリがあると、これを活用することにより同じような内容の処理を書く必要がなくなり、効率的にアプリケーションを作る事ができます。
モジュール
モジュールとは、「ある特定の処理を実現するための部品(機能群)」のようなものです。
色々な場面で使われる言葉ですが、「モジュール化(=部品化)」する事により容易にプログラムの再利用が可能となり、効率的に開発を行うことが可能になります。
以下は、PHPフレームワーク「CakePHP」を例にとってご紹介したいと思います。
Controller(コントローラ)
その名の通り、制御を担当します。
モデルやビューなどに対して命令を出し、作業を依頼したり、モデルとビューとが連携する橋渡しなどを行います。
Model(モデル)
コントローラから受けた命令に従って処理を担当します。
主な役割は、データベースへのデータの保存・読込処理などです。
View(ビュー)
コントローラから受けた命令に従って画面表示を担当します。
主な役割は、テンプレートへの変数の埋込処理やブラウザへの出力などです。
コンポーネント
コンポーネントとは、主にコントローラの処理をサポートする部品のようなものです。
処理をコンポーネント化する事により、他のコントローラでも同じ処理をしたい場合にコンポーネントを読み込みことで同一の処理をする事ができます。
CakePHPでは認証(auth)やSessionなど組み込み済みのコンポーネントが用意されています。
ビヘイビア
モデル内の処理でデータの入出力を行う際に事前に行わせたい処理や、処理後に行わせたい処理をモデルに追加する場合に利用します。
CakePHPではTreeやContainableなど組み込み済みのビヘイビアが用意されています。
ヘルパー
ヘルパーとは、データ加工などの処理をライブラリ化し、ビューの処理として同一の処理をさせることが可能な仕組みです。
CakePHPにはHtmlヘルパーやFormヘルパーなどいろいろな種類のヘルパーが用意されています。