2016.10.26
Webフレームワークことはじめ
PHP環境でのWebサイト構築の際、ほとんどの場合はフレームワークという各種プログラムをまとめたものが使われます。
以前の記事で紹介したWordpressも、広い意味でフレームワークととらえることもできます。
ところで、なぜフレームワークが使われるのでしょうか?
フレームワークの有効性と使用する目的の再確認として、利点を整理していきます。
どうしてフレームワークを使うのか?

Webサイト(サービス)の開発には、データベースへの読み書き、セキュリティ対策、URLの表示機能などなど、複数種類の機能を作る必要があります。
それら機能は誰が作ってもおおむね同じものができあがります。
そのため、必ず使われる機能は共通化して、必要な機能の開発のみに集中したいという要望に応える形でフレームワークになっていったという経緯があります。
先ほど、フレームワークを各種プログラムを『まとめた』ものであると前述しました。
まためたというのはただソースコードを一カ所に集めただけではなく、機能の使い方が統一されているところがポイントとなります。
ここでは、CakePHP(2.X系)でのデータ取得を例とします。
データ取得機能を使う際、getXXX()とかfetch()など、取得方法が複数ある場合はどうでしょう。
複数人での開発において、どちらを使うのかが最適なのかぱっとわからない、それぞれが自分の考えで使うことで非効率になる、といったことが起こりえます(同じデータの取得方法が3つあったプロジェクトを見たことがあります……)。
CakePHPの場合は以下のように、記述が『データの取得元->find()』というように固定されています。
$this->Blog->find(条件)
データを取得したいとき、CakePHPを使っていれば「基本的にはfindを使えばオッケー」となり、上述のような問題を考えることなく開発に集中できるようになります。
まとめ
データの取得は一例となりますが、実際にはWebサイトの開発において誰もが行うことのほとんどを、直感的に理解しやすいルールによって使えるようになっています。
そんなフレームワークを使いこなして効率化することで、よりよいサービスを開発しましょう。
記事内で例としたCakePHPですが、使用されているのは日本が中心で(年々使用率は低下気味)、海外ではLaravel、Symfonyのほうが有名です。
ただ、LaravelやSymfonyは英語の記事が多いため、日本語の記事が大量にあり公式ドキュメントも翻訳されているCakePHPを導入向けのフレームワークとして取り上げました。
