2009年6月アーカイブ



前回の、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

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

 

 ずっと受けたかったソフトウェアエンジニアリングの新人研修

 

著者:大森久美子、岡崎義勝

発行日:2009年4月9日

発行者:佐々木幹夫

発行所:株式会社 翔泳社

257ページ

2,000円+税

 

内容

エンジニアになったら知っておきたいプロの常識

*社会人エンジニアとしての基礎知識を学べます

*ソフトウェアエンジニアリングの入門書として最適

*若手ソフトウェア技術者必読の名著

  • オリエンテーション
  • 第1章/ソフトウェア開発の概要
  • 第2章/基礎知識
  • 第3章/要求定義と要件定義
  • 第4章/システム提案
  • 第5章/外部設計
  • 第6章/内部設計
  • 第7章/製造
  • 第8章/テスト
  • 第9章/受入テスト
  • 第10章/プロジェクトマネジメント
  • 第11章/品質管理
  • 第12章/セキュリティ
  • 第13章/プロジェクト完了報告書

 

ポイント

 システム開発でよくある新人研修を題材にした書籍である。実際に研修を受けている

という雰囲気で内容は進んでいくため、とても読みやすい書籍になっていると思います。

プロとしてシステム開発・設計をしている方々の中でも実際に上記のように体系的に

研修を受けたとか、勉強して身につけたという人も意外と多くないと思います。

 

OJTという名のもとに現場で実際に仕事をしながら、なんとなく身についているだけと

いう人が多いと感じます。本人の意識次第ということになるかもしれませんが、本書の

ように、体系的に、そして何より読みやすく学べる書籍も少なかったのではないでしょうか?

 

また本書では、実際に現場でも即実践できるような、各開発工程で作成すべきドキュメントの

実際のサンプルも掲載されています。新入社員、若手社員が読むのはもちろん、シニアな

エンジニアにとっても知識の再確認、自分自身が実践してきた手法との比較などにも活用

することができます。 

 

システム開発の実践

本書でシステム開発の流れを学習した後には、実際に設計・開発作業の実践をおこなう

ことが大切だと思います。いきなり実践ではなく、新入社員研修や社外での研修等でも

よくある、システム開発のシミュレーションができるものが望ましいと思いますが、そのまま

実践に生かせるようなレベルのものはあまりないのではないでしょうか?もちろん書籍に

掲載されているサンプルプログラムも然りです。

 

そこで本サイトでは、こういったシステム開発の実践ができるようなフレームワーク(教材)

を提供することも目的としています。

詳しくは、こちらのページを参照してください。