Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

CakePHPフレームワークによる快速WEB開発

生産性を向上するPHP4/PHP5用RADフレームワークの利用

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/11/06 00:00

現在、短期間での効率的な開発を実現するために、多種多様なPHPフレームワークが公開され、PHPによるWeb開発環境が整いつつあります。今回は特に、Ruby On Railsに触発されて開発が始まり、その後PHP流に独自の発展をとげているCakePHPフレームワークの使い方をご紹介します。PHPという言語の面白さや、PHPフレームワークを使った開発手法に興味を持っていただければと思います。

目次
完成図: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に説明があります)。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2006/11/20 12:11 2006/11/20 チュートリアルの情報を追加。

  • 2006/11/09 00:48 1.1.10.3825での bake.phpのTipsを追加。

著者プロフィール

  • 堂園 俊郎(ドウゾノ シュンロウ)

    (株)コミュニケーション・ビジネス・アヴェニュー技術担当。著書「CakePHPガイドブック」。CentOSサーバによる大小のコールセンター立ち上げ業務のかたわら、オープンソースプロダクトのコンサルティングを行う日々。http://cakephp.jpの管理人。ブログ:「CakePHPのおいしい食べ方...

バックナンバー

連載:CakePHPチュートリアル
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5