生産性を向上するPHP4/PHP5用RADフレームワークの利用
堂園 俊郎 [著] 2006/11/06 00:00

1 2 3 →
完成図:bake.phpで自動生成
完成図:bake.phpで自動生成

はじめに

 PHPは、データベース(以下、DB)と連携する高機能なWebアプリケーションを容易に作成できるスクリプト言語です。現在、さらに短期間で効率的な開発を実現するために、さまざまなPHPフレームワークが公開され、開発環境が整いつつあります。今回は特に、Ruby On Railsに触発されて開発が始まり、なおかつ独自の発展を遂げているCakePHP(ケイク・ピー・エイチ・ピー)フレームワークを紹介します。PHPという言語の面白さや、フレームワークによる開発に興味を持っていただければと思います。

対象読者

 PHPの基礎知識を持ち、フレームワークを利用した効率的なWeb開発に関心のある方。

必要な環境

 CakePHPを利用するために必要な環境は次のとおりです。

  • Linux、Windows、Macなどの各種OS環境
  • Apache、LighttdなどのWebサーバー
  • MySQLなどのDB(MySQL推奨)
  • PHP4またはPHP5(PHP 4.3.2 以降)

 なお、今回はWindows XP上で、Apache2、PHP 5.1、MySQL 4.1という構成で解説を行います。

PHPフレームワークの利点

 PHPをそのまま使ってもプログラムは書けます。ではPHPフレームワークを利用すると、どのような利点があるでしょうか。

  1. コードを繰り返し書くことを極力避けることができる
  2. PHPは非常に手軽な言語なので、各ページごとに、DBへの接続、データの読み込み、HTMLでの表示、という一連の流れをべた書きしたプログラムを書くのは簡単です。しかし、100ページ分、それぞれに同じことを繰り返し書いた場合、一箇所に変更が生じると100回書き直す必要があります。
    オブジェクトを利用することでその作業量を軽減できますが、フレームワークを利用すると、さらに書くべきコード量を劇的に減らすことができます。「コード量が少ない」ということは「変更時の修正箇所も少なくてすむ」ことになり、安定したサイト運用につながります。
  1. MVCアーキテクチャによる、機能の分離
  2. Webの世界では、MVC(モデル、ビュー、コントローラ)という設計モデルがよく使用されます。CakePHPもこの形を採用しており、それぞれに一つずつファイルが対応しています。ファイルが別々になっているので差し替えが比較的容易です。また、どこで何をやっているのかを区別したり、まとめたりしやすくなっています。
  1. 将来的な拡張、変更に対応しやすい
  2. CakePHPフレームワークを利用している場合、例えば、セッション管理をPHPのファイル形式からDB形式に変更したいのであれば、パラメータの設定を一つ変更するだけです。また、既存のシステムをAjaxでより魅力あるインターフェイスに変更したい、というような場合でも、フレームワークを使って書いてあれば修正すべき箇所を見つけやすくなります。これは、処理ごとにファイルがまとまっているからです。
  1. チーム作業を効率的に分担できる
  2. データ処理とデザイン部分が完全に分離しているため、プログラムを作成した後で外観デザインを作ることもできますし、デザイナーとプログラマーが並行して作業を進めることも容易です。
  1. Ajax、その他の最新技術を反映させやすい
  2. フレームワークを利用した作業の場合、コミュニティが活発であれば、最新技術に関するコンポーネントやヘルパーなどの部品がよく公開されます。自分のプロジェクトを大幅に変更しなくても、プラグインのような感覚で機能を追加できるかもしれません。

CakePHPフレームワークの利点

 PHPはその手軽さからか、非常に多くのフレームワークがオープンソースで開発され、公開されています。日本でもEthnaMapleという国産フレームワークが発表されていますし、PHPを開発しているZendもZend Frameworkの開発に乗り出しました。

 そうした中で、CakePHPフレームワークの特長には次のようなものがあります。

  • PHP4/PHP5の両方に対応(PHPのバージョンによってコードを読み分けて対応)
  • PEARライブラリを必要としない
  • O/Rマッピング(テーブルアソシエーション)
  • CRUD(データの作成、読み込み、更新、削除)画面の自動生成
  • ビューのキャッシュ機能で表示の高速化
  • バリデーション(入力値検証)機能
  • 生成されたSQL文のデバッグ機能
  • 活発なコミュニティの存在
  • Ajax、htmlなどの各種ヘルパー
  • セキュリティ、セッション、リクエストなどのコンポーネント
  • ACLによる認証システム
  • データのサニタイズ
  • 「vendor」ディレクトリで各種のPHPクラスを取り込める

 CakePHPを利用していると、Ruby on Railsへ移行しやすくなります。また、Zend Frameworkやその他の各種のクラスを「vendor」フォルダに取り込んで利用することもできるので、修得コストが無駄になりません。さっそく CakePHPフレームワークを利用した開発に挑戦してみましょう。

インストール

 CakePHPのインストールはいたって簡単です。cakephp.org からファイルをダウンロードし、解凍してWebサーバーに入れてください。開発用であればこれでOKです。そのアドレス(cakeを入れたいちばん上の階層)を見に行くと、インストールができたという表示が出るはずです。

 その後、「app/config/database.php」の中にDBへの接続情報を書き込みます。再びアクセスし、DBに接続できるという表示が出るのを確認してください(なお、Apacheのmod_rewriteが利用できるように設定しておいてください。詳細はcakephp.jpに説明があります)。


1 2 3
→
INDEX
CakePHPフレームワークによる快速WEB開発
Page1
はじめに
対象読者
必要な環境
PHPフレームワークの利点
CakePHPフレームワークの利点
インストール
CakePHPの基礎知識
bake.phpスクリプトを活用しよう!
まとめ
参考文献
プロフィール
堂園 俊郎 ドウゾノ シュンロウ

(株)コミュニケーション・ビジネス・アヴェニュー技術担当。著書「CakePHPガイドブック」(毎日コミュニケーションズ)。VoIP、CTI技術のサポート、開発のかたわら、オープンソースプロダクトのビジネス利用に関してコンサルティングを行う日々。多言語学習に挑戦中。http://cakephp.jpの管理人。ブログ:「CakePHPのおいしい食べ方」http://douzo.seesaa.net 、「sdozono's tech-note」http://cakephp.seesaa.net など。
 


注目の求人情報
機械・電気・回路設計/株式会社デンソー
カーエレクトロニクスの進化を支える車載用カスタムICの開発・設計を担当していただきます。 ...
システム運用・管理/上場企業
お客様企業内もしくはデータセンタにおけるサーバやネットワーク、業務システムなどの運用管理。 ...
システムエンジニア/外資ITソリューション
ビジネス課題に対応したソリューションのテクノロジー、アーキテクチャ設計・構築 マイクロソフト製品...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: