SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

CakePHPチュートリアル

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

次のページ
CakePHPの基礎知識

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
CakePHPチュートリアル連載記事一覧
この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/670 2007/12/13 16:06

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング