タグ「CakePHP」が付けられているもの

前回の、PHP環境構築(1)では、

もっとも重要である、統合開発環境(IDE)のインストールと、IDEを利用しやすく

するために、IDEの日本語化というところまでを説明しました。

統合開発環境には無料で高機能そしてもちろんデファクトスタンダードな開発環境

である、eclipse"PDT(PHP Development Toolkit)"を選択しています。

また、日本語化には、Pleiades(プレアデス)プラグインを使用しました。

※どちらも簡単にセットアップできますのでまだのかたは、前回を参照してください。

 

さて、今回はセットアップした開発環境で、PHPのデバッグができるようにします。

通常、ビジネスでのシステムの開発では、システム設計→開発→テストという工程

で進められますが、重要になるのが開発環境でのデバッグの機能です。

 

プログラムの開発中、テスト実施中、不具合が発生した場合の調査など、

プログラムの実行中のある時点での、変数の内容の参照や、どのような順番で

プログラムが実行されているか、分岐命令でどういう動作をしたかなどを知ることは

とても重要です。

 

そのために、ブログラムに"ブレークポイント"という一時停止できるポイントを設定したり、

ブレークポイントから一行一行プログラムを実行していく、"ステップ実行"などの機能が

一般的な開発環境には備わっています。※Visual Studio, Delphi、Eclipse(Java)など

 

今回は、PDTというPHPの開発環境でデバッグをおこなうにはどうすれば良いかを説明

していきます(残念ながらデフォルトでPDTにはデバッグ環境が含まれていないので)

 

まず、PHPでデバッグをおこなう最も有力な手段としては、次の2つが考えられます。

  • "ZendDebugger"のデバッグ機能を利用する
  • "Xdebug"のデバッグ機能を利用する

 

どちらも安定性、速度面など、性能的には大差はないようです。機能的にいくと、

ZendDebuggerは、mod_rewrite環境で正常にデバッグできない。(a)

Xdebugは、変数の内容表示で日本語が表示されない。(b)

というところが欠点に挙げられています。

 

CakePHPをフレームワークとして利用しようとした場合、両方とも深刻な問題です。

⇒念のため、ZendDebuggerも、Xdebugも両方とも使用してみたところ、私の環境で

(a)については現象は発生しませんでした。きちんとブレークポイントでも静止しますし、

CakePHPフレームワーク内ののソースでもデバッグできています(今のところ)

また、Xdebugについては、(b)の問題があるのと、細々とした点で、使いにくい点が

あったので、当面は、ZendDebuggerを利用しようと思います。

(a)の問題については現在のバージョンでは既に解決されていたのかも...

 

前置きが長くなったのですが、以下、簡単に設定手順を説明します。

(基本的には単純です)

 

1.ZendDebugger

  a)インストール済のPDTに、モジュールのみ設定する方法を説明しますが、

  ZendDebugger+PDTのAll in Oneモジュールも提供されています。

  PDT+PHP+ZendDebugger。2009年6月20日のWindows環境での最新版は、

  "pdt-2.0.0GA_debugger-5.2.15.v20081217-all-in-one-win32.zip"です。

 

  個別に、ZendDebuggerモジュールを取得する場合は、

  ZendDebuggerのダウンロードサイトより、モジュールをダウンロードします。

  Windows環境での最新版は、"ZendDebugger-5.2.15-cygwin_nt-i386.zip"です。

  

  b)それぞれのモジュールの中に、"ZendDebugger.dll"というモジュールがあるので、

  任意の場所に保管します。一般的には、PHP本体、extフォルダの中でしょうか...

 

  c)そして、php.iniの設定に次を追加します。

  [Zend]
  zend_extension_ts="C:\php\ext\ZendDebugger.dll"
  zend_debugger.allow_hosts=127.0.0.1
  

  ※zend_extention_tsの"_ts"を付けるかどうかはPHPの環境で変わります。

  ZendDebugger.dllのパスの設定は、自身の環境に合わせてください。

 

  d)ここで、Webサーバ(Apache)を再起動しておきます。必要に応じて、

  phpinfo()で"ZendDebugger"の項目が表示されるか確認しておいてください。

 

  e)eclipsePDTを起動して、デバッガーの設定をします。

  メニューの[ウィンドウ]-[設定]から設定画面を開きます。

  PHP->デバッグの項目を設定します。

  ・"PHPデバッガー"を、"Zendデバッガー"に設定します。

  ・必要に応じて"サーバー"の項目を変更します。

  ・"PHP実行ファイル"を自身の環境に合わせます。

   php-cgi.exeの場所と、php.iniの場所と、デバッガーのタイプを指定します。

 

  f)デバッグしたいファイルを開き、必要に応じてブレークポイントを設定します。

  ワークスペースの該当のファイルを右クリックし、"デバッグ"メニューまたは、

  ツールメニューのデバッグアイコンをクリックすると、デバッグが始まります。

 

  g)設定等に問題がなければ、該当のファイルのブレークポイントで実行が停止

  されるはずです。

 

20090620_2.jpg  

    

1.Xdebug

  最後に、Xdebugの設定も説明しておきます。

  手順は、基本的にZendDebuggerと同じです。

 

  a)まずは、モジュールをXdebugのサイトよりダウンロードします。

  PHPのバージョンに合わせてダウンロードします。2009年6月20日現在の

  最新バージョンは、2.0.4です。私の環境に合わせて、 "5.2 VC6"を

  ダウンロードしました。

  

  b)私の場合、"php_xdebug-2.0.4-5.2.8.dll"というモジュールがダウンロードされた

  ので任意の場所に保管します。一般的には、PHP本体、extフォルダの中でしょうか...

 

  c)そして、php.iniの設定に次を追加します。

  [xdebug]
  zend_extension_ts="C:\php\ext\php_xdebug-2.0.4-5.2.8.dll"
  xdebug.remote_enable=1
  xdebug.remote_handler="dbgp"
  xdebug.remote_mode=req
  xdebug.remote_host="localhost"
  xdebug.remote_port=9000
  xdebug.remote_log="C:\php\logs\xdebug.log"
  xdebug.manual_url = http://jp2.php.net
  xdebug.collect_params = On
  xdebug.dump.GET = *
  xdebug.dump.POST = *


  ※zend_extention_tsの"_ts"を付けるかどうかはPHPの環境で変わります。

  dllのパスの設定は、自身の環境に合わせてください。

 

  d)ここで、Webサーバ(Apache)を再起動しておきます。必要に応じて、

  phpinfo()で"xdebug"の項目が表示されるか確認しておいてください。

 

  e)後の手順は、ZendDebuggerの時と同じです。デバッガーの種類に"xdebug"

  を選択してください。xdebugの場合は、一度デバッグの実行後、デバッグ終了を

  するまでデバッグのセッションが続いているので新たにデバッグを起動できません。

  また、デバッグ終了後にダミーのブラウザが必ず立ち上がるのも少しうっとおしい

  です。

  

  ※なお、php.ini に両方のデバッガーの設定を書いた場合に、動作しなくなる場合が

  ありましたので、php.iniには、どちらか一方のみ記述するか、片方をコメントアウト

  してください。

 

  ここまでの設定で、開発環境の構築で大きな部分は達成できていると思います。

  次回は、実際に、cakePHPのプロジェクトを作成し、構築した開発環境で、開発を

  進める準備をしてみようと思います。

 

 

私はPHPをメインでは利用していないのですが、CakePHPフレームワークが

そこそこ評判が良いようなので、いろいろと使っていこうと思ってます。

*CakePHPについては...こちらを参照

 

CakePHPを選択した理由としては、

  • PHPを利用できる環境がレンタルサーバなどで豊富
  • とりあえずのセットアップが超簡単
  • RubyOnRailsフレームワークの影響を受け機能的にも十分

 

など他にもたくさん挙げられます。

 

個人的には、Web開発ではJavaでTomcatを利用していたので、

PHPであれば、symfonyがその流れを汲むのだが、symfonyは、

まだ、CakePHPほどの勢いはないかなぁという感じです。

 

(特にビジネスとしての)開発をおこなう場合には、開発環境の整備が重要

になると思います。スキルにばらつきのあるプロジェクトチームでは、開発環境

を整備することで、生産性の飛躍的な向上はもちろん、開発工程の標準化、

チーム開発での作業の統一化も図れます。

 

そこで、ビジネスでの利用も想定にしたうえで、以下のように

PHPの開発環境を整備していきたいと思います。

  • 統合開発環境(IDE)を利用する
  • 日本語の環境で利用できる
  • IDEでテスト(デバッグ)ができる
  • フレームワーク(CakePHP)と連携ができる
  • ソース管理(チームでの共有)ができる
  • データソースの管理ができる

 

今回はまず、

統合開発環境(IDE)の準備と、日本語化までを説明します。

 

1.統合開発環境(IDE)

  もちろんPHPの統合開発環境も様々なものが存在します。

  有料の、ZendStudio、VS.PHP、Delphi for PHPなどをはじめ、

  Eclipse環境で利用できる、PDT、PHPEclipse、TruStudio、etc

  ⇒無料で利用でき、スタンダードになりつつあるPDTを選択します。

 

  PDTは、"PHP Dvelopment Toolkit " の略です。

  その名の通り、PHPの開発に特化した環境になっています。

  上記、サイトより"Download"を選択し、"PDT 2.0.1 All In Ones"から

  Windows、Linux、MacOSを選択します(2009年6月19日現在の最新版)

  ⇒PDTをまだインストールしていない場合は、既に日本語化済のPDTが、

   ダウンロードできます(2.を参照)

 

  Eclipseと同様、インストールといった特別な作業は必要なく、解凍して任意

  の場所にコピーするだけでセッティングは完了です。

  eclipseフォルダの、eclipse.exeを起動するだけです(Windows環境の場合)

  PDTのバージョンは、2.0.1

  Eclipsのバージョンは、3.4.1 となっています。

 

  起動すると、PHPのプロジェクト作成機能や、PHPファイルのコード補完機能、

  Web開発(HTML,CSS、XML)等の開発がすぐにできるような設定になって

  います。

 

2.PDT開発環境の日本語化

  Pleiades(プレアデス)という日本語化プラグインを適用します。

  手順は至ってシンプルで簡単です。

  MergeDoc Project よりプラグインをダウンロードします。

  ※このサイトでは、PDT+Pleiadesが一体化になった、All in Oneモジュールも

  ダウンロードできるようにもなっています(Windowsのみ対応) 

  

  個別にPleiadesだけをダウンロードする場合は、"Pleiades 本体ダウンロード"

  より安定版をダウンロードします(2009年6月19日現在の安定板 1.3.0)

 

  インストール手順は、まずダウンロードしたファイルを解凍し、featuresフォルダと、

  pluginsフォルダを、eclipse(PDT)フォルダに上書き。

 

  その後は、readmeフォルダを参照すれば、手順が詳しく書かれています。

  まず、eclipse.iniの最後に、次の行を追加。

  -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

 

  次に、"eclipse.exe -clean.cmd"ファイルをeclipseフォルダにコピーし、

  ダブルクリックして実行します(Windows環境)

  ⇒これだけでメニュー等、日本語化されています。

  

  また、Pleiadesのスプラッシュを使用する場合は、eclipse.ini内の、

  -showsplash ~

  の部分を削除します。

 

  以上で、まずは統合開発環境(IDE)のセットアップと、日本語化部分が

  完了しました。

 

20090620.jpg

 

  次回は、統合開発環境上での、PHPファイルのデバッグと、CakePHP

  フレームワークの設定・動作確認・デバッグ部分を設定します。

 

 CakePHPによる実践Webアプリケーション開発

 

著者:岸田健一郎、安藤祐介、新原雅司

発行日:2009年3月31日

発行者:中川信行

発行所:株式会社毎日コミュニケーションズ

263ページ

3,000円+税

 

内容

現場のプロが解説するCakePHP1.2を用いた開発技法のすべて

単なるフレームワークの機能解説だけではなく、CakePHPを使ってどのようにWebアプリケーションを組み立てていくかを、開発現場で培われてきた経験に基づき解説します。CakePHPの基礎知識に始まり、アプリケーション開発、テスティングフレームワーク、機能拡張まで、現場で役立つプラクティスが散りばめられています。

  • Chapter1 Webアプリケーションフレームワーク CakePHP
    1-1 CakePHPについて
    1-2 CakePHPのダウンロード
    1-3 CakePHP1.1と1.2の違い
    1-4 基礎的な仕組み
  • Chapter2 アプリケーションを作り込んでいく
    2-1 グループウェアをつくる
    2-2 予定表
    2-3 ユーザ管理
    2-4 関連を作る
    2-5 ACLを使ったアクセス制御
    2-6 見た目を調整する
  • Chapter3 テストコードを記述する
    3-1 テスティングフレームワークを利用する
    3-2 モデルのテスト
    3-3 コントローラのテスト
    3-4 コンポーネントのテスト
    3-5 ヘルパーのテスト
  • Chapter4 機能を拡張する
    4-1 アラートメール
    4-2 携帯電話の対応
    4-3 CSVでの出力
  • Appendix サンプルアプリケーションについて

 

 ポイント

PHPの主力のフレームワークとなりつつあるCakePHPでのWebアプリケーション開発の実践的な解説書です。2009年5月10日現在で最新のバージョン、CkaePHP1.2を用いた解説書になっています。

インストール方法など、ごく基本的な内容については解説されていますが、本書の流れは、あくまで、グループウェアというWebアプリケーションをいかにして開発していくかが中心となって構成されています。もちろん具体的なコードも豊富に記述されています。

また、ただ単にアプリケーションを開発するだけでなく、ビジネスの現場でも役に立つようなポイント(アクセス制御・テスティング、メール連携、CSV出力、携帯電話対応)も解説をとおして学べるようになっており、これから開発の基礎を学ぶ人も、いままでCakePHPでの開発に携わってきた人にも読み応えのある内容になっていると思います。

 

本書については上記のような内容になっているため、CakePHPのリファレンス的な内容、機能を網羅的に記述されていることはありませんが、リファレンスについては、CakePHP1.2について書かれた「CakePHPポケットリファレンス」がよいと思います。この2冊を組み合わせれば、CakePHP1.2での開発の多いな助けとなると思います。

 

このブログでもCakePHP1.2を利用した開発についての解説の記事も書いていくつもりですので是非参照してください。

タグ「CakePHP」が付けられているもの

 

 

 

CakePHP ポケットリファレンス

 

CakePHPポケットリファレンス

著者:株式会社ブルーオーシャン 岡田佳典

発行日2008年7月25日

発行者:片岡巌

発行所:株式会社技術評論社

447ページ

2,480円+税

 

内容

話題のフレームワーク、CakePHPでWebアプリケーションを高速開発!

 

  • 困った時にすぐに調べられる
  • メソッドや関数の使い方をサクッと逆引き
  • CakePHP1.1/1.2に対応
  • わかりやすいサンプルコード付き

 

第1章 インストール編

第2章 設定編

第3章 モデル編

第4章 コントローラ編

第5章 ビュー編

第6章 コンポーネント編

第7章 ヘルパー編

第8章 キャッシュ編

第9章 Sanitizeライブラリ編

第10章 アクセスコントロールリスト編

第11章 プラグイン編

Appendix 資料

 

ポイント

CakePHP1.1/1.2の両方に対応したリファレンスマニュアルです。内容については簡潔にまとめられ、カテゴリ毎にわかれて記述されているため開発の際に調べるのに役立ちそうです。サイズとページ数についても手頃な印象です。

機能的にも多くの内容が書かれており通常の開発の際に必要となる項目は網羅されているのではないでしょうか?ただしCakePHP1.2については、発行の時期的な兼ね合いもあり、一部がリファレンスとして書かれていない状態です。その内容については、巻末の資料欄に詳しく書かれています。

リファレンスや、CakePHPの命名規約、QAなど実際にCakePHPで開発をする際に参照するのに便利な内容となっていますが、CakePHPのフレームワークを利用したアプリケーション開発の手順については触れられていないため、書籍を読むだけで、CakePHPでの開発手法を学ぶというのは難しいでしょう。

CakePHPが影響を受けているフレームワーク「Ruby on Rails」の開発の経験者や、Struts,Struts2などのWebアプリケーションフレームワークの動作について理解している場合はイメージがつきやすいとは思いますが、CakePHPの開発手法に関しては別途書籍で学ぶほうがよいでしょう。

 

下記のように新しい書籍もどんどん発売され、PHPのスタンダードなフレームワークとしての地位を築いていきそうです。( ※2009年3月15日現在の新刊では以下が発売されています。)

CakePHPによるWebアプリケーション開発

 

また、2009年3月15日予約受付中ですが上記と類似の書籍が発売されます。

CakePHPによる実践Webアプリケーション開発

 

CakePHPをインストールする

最初に

CakePHPは、Webアプリケーションフレームワークです。

名前のとおり、PHPの環境の上で動作します。

PHPとは?

 

CakePHPの特徴

CakePHPは、"Ruby On Rails"の設計思想に大きな影響を受けて開発されています。Ruby On Railsをご存じの方はCakePHPの仕組みについてスムーズに理解することができるでしょう。また、CakePHPもMVCモデルに基づき設計されているため、これまで同様のフレームワークを利用したことがある方も大まかな動作については想像しやすいでしょう。

  • PHP4とPHP5の両方のバージョンで動作する
  • 生産性と保守性を大きく向上することができ、堅牢なシステムとなる
  • 外部のライブラリに依存しないため環境の構築が容易でホスティングサービスにも対応


前提条件

  • Webサーバ(Apache、IISに対応)のインストール・設定
  • PHP(PHP4.3.2、またはPHP5以降)のインストール
  • DBMS(MySQL等、開発するシステムの必要に応じて)

※ApacheからCakePHPを動作させるために、URL書き換えエンジン(mod_rewrite)を有効にし、また、.htaccessファイルを有効にします。

 

mod_rewriteの設定

httpd.confの設定を変更

#LoadModule rewrite_module modules/mod_rewrite.so

LoadModule rewrite_module modules/mod_rewrite.so

(コメントされている場合はコメントをはずしモジュールを有効にする)

※設定を変更した場合はApacheを再起動する

 

.htaccessファイルを有効にする

httpd.confの設定を変更

<Directory /var/www/>

    AllowOverride All

</Directory>

(CakePHPを配置したディレクトリの設定で、"AllowOverride"の設定を"All"とする)

※設定を変更した場合はApacheを再起動する

 

インストール 

以下のURLを開き、"ダウンロード"をクリックします。

http://www.cakephp.jp/

画面の右上に、大きく"Download"と最新のバージョンが書かれたリンクがありますので、クリックします。2009年2月28日時点での最新バージョンは、1.2.1.8004.Stable となっています。

 

切り替わった画面にて、必要な形式(tar.gz、zip等)のファイルを選択します。寄付をしてダウンロードするか、寄付はせずダウンロードするかの選択をする画面が開くのでいずれかをクリックしてダウンロード画面を開き、ダウンロードを開始します。

 

ダウンロードしたファイルをインストールすには、ダウンロードしたファイルを解凍し、Webサーバのドキュメントルート以下に配置します。このとき、解凍したフォルダの名前を簡単なものに変更しておきます(例:/var/www/cake/)ドキュメントルートが、/var/www/とすると、CakePHPは"http://server_name/cake/"でアクセスすることができるようになります。

 

CakePHPをより安全に運用するための配置

CakePHPのファイルの中には様々な種類のファイルがあるため、すべてをドキュメントルート以下に配置してしまうとセキュリティ上の問題が発生してしまう場合があります。

そこでドキュメントルート自体を、CakePHPのファイルの中の公開が必要なフォルダに設定してしまう方法があります。

httpd.confの設定を変更

DocumentRoot /var/www

DocumentRoot /var/www/cake/app/webroot

 

※ドキュメントルートを変更できない場合は、必要な、cake/app/webrootフォルダのみドキュメントルート以下にコピーし、動作に必要なアプリケーションファイルのフォルダ、ライブラリファイルのフォルダを個別に配置し、index.phpで、配置したフォルダの場所を個別に設定することが可能です。

  • ROOT定数の設定
  • APP_DIR定数の設定
  • CAKE_CORE_INCLUDE定数の設定

 

以上で、CakePHPを配置したアドレスを入力して、CakePHPの画面が表示されればインストール完了です。このフレームワークを利用し、作成したプログラムを配置することで、Webアプリケーションの開発を高速に進めることができるようになります。

 

1