オープン・ソース・ソフトウェアによる協調 Web サイトの設計、開発、デプロイメント 第 13 回: Eclipse 内での PHP 開発

ファイルを作成、デバッグ、そして共有する方法

この連載では、IBM Internet Technology Group が無料で入手可能なソフトウェア・パッケージを使って、架空の会社、IBC (International Business Council) のエクストラネット Web サイトを設計、開発、そしてデプロイする過程を追っています。今回の記事では、Eclipse 統合開発環境を使って Web サイトを作成する方法を説明します。焦点とするのは、Eclipse の PHP サポート、そして CVS (Concurrent Versions System) によるバージョン管理です。

Alister Lewis-Bowen (alister.lewisbowen@gmail.com), Senior Software Engineer, FIT Team, IBM China Development Lab 

Alister's photoAlister Lewis-Bowen は、IBM Internet Technology Group のシニア・ソフトウェア・エンジニアです。1993年から IBM 社員としてインターネットおよび Web テクノロジーに取り組んでいます。彼は IBM 後援のスポーツ・イベントの Web サイトに従事するためにアメリカ合衆国に移り、のちに ibm.com のシニア・ウェブマスターとなりました。現在は、セマンティック Web プロトタイプの作成を支援しています。



Louis Weitzman (louis.weitzman@gmail.com ), Senior Software Engineer, FIT Team, IBM China Development Lab 

Louie's photoLouis Weitzman は、IBM Internet Technology Group のシニア・ソフトウェア・エンジニアです。30年間、設計とコンピューティングが交わる部分で働いています。彼は ibm.com で使用する XML、フラグメント・ベースのコンテンツ管理システムの開発を支援し、現在は新しいプロジェクトへの設計プロセスの統合に従事しています。



Stephen Evanchik, Software Engineer, FIT Team, IBM China Development Lab 

Stephen's photoStephen Evanchik は、IBM Internet Technology Group のソフトウェア・エンジニアです。多くのオープン・ソース・ソフトウェア・プロジェクトに貢献した経歴を持ち、なかでも Linux カーネルの IBM TrackPoint は彼の注目に値する功績となっています。現在は、新しいセマンティック Web テクノロジーに取り組んでいます。



2007年 7月 03日 (初版 2007年 1月 30日)

はじめに

今回の記事では、PHP ファイルの作成、コードのデバッグ・サイクル、そしてチーム・メンバーとのファイル共有など、PHP コードを作成する際の典型的開発プロセスを紹介します。このプロセスは Eclipse 開発環境のコンテキスト内で行い、PHP 統合開発環境 (IDE) プロジェクトおよび CVS の機能を使用します。

PHP は広範に使用されている汎用スクリプト言語です。この言語は特に Web 開発に適しており、HTML に組み込むことができます。

この記事に記載する情報は、従わなければならない絶対的な開発ガイドラインとしてではなく、Eclipse 内で独自の開発を行う際の手掛かりとして使ってください。

編集者による更新: PHP IDE プロジェクトは PHP Dev Tools プロジェクトに変わりました。詳細は Eclipse.org を参照してください。

Eclipse の用語

連載第 3 回第 4 回でそれぞれ Windows® と Linux® を対象に Eclipse 開発環境をインストールして構成する方法を説明したので、以下の Eclipse 用語はもうご存知でしょう。

プラグイン
互いに拡張可能な機能を集めたパッケージ
フィーチャー
ダウンロードおよびインストール用のプラグインの集合 (これにより、プラグインのパッケージ化と配布が簡易化されます。)
パースペクティブ
特定のタスクをサポートするために連携する複数のビューからなる Eclipse 構成 (PHP コーディング、Java™ コーディング、CVS などを操作するためのパースペクティブがあります。)
ビュー
ビューが含まれるパースペクティブのタスクをサポートするために、一機能を提供するウィンドウ枠の構成部分 (ビューは通常、作業中のプロジェクトに関する情報を提供します。例えば、エクスプローラー、アウトライン、コンソールなどです。)
エディター
特定のファイル・タイプに関連付けられたコンテンツを編集するために使用するビューのタイプ (PHP エディター、Java エディターなど)

図 1 は、この記事でインストールして構成する Eclipse PHP IDE です。この IDE を使って PHP コードを作成およびデバッグします。

図 1. アナウンスメント・モジュールを編集する Eclipse PHP IDE
アナウンスメント・モジュールを編集する Eclipse PHP IDE

この記事ではサンプル・プロジェクトに新しいモジュールを作成し、モジュールのデバッグ方法および CVS を使用して共同開発者とモジュールを共有する方法を説明します。


PHP の作成

以前 Eclipse をインストールするときに、プロジェクトの作成方法と Web サイトにファイルをインポートする方法を説明しました。また、PHP ファイルを新規に作成する方法については、カスタム Announcements モジュールを作成する際に説明しました。

PHP コードを作成する際には、関数のドキュメンテーションを提供すると役に立ちます。そこで、PHP 開発のコード作成段階で活躍するのが phpDocumentor です。これは PHP で作成されたツールで、PHP コードと外部ドキュメンテーションの両方から直接ドキュメンテーションを作成するように設計されています。コメント域には、詳細情報を提供するためのマークアップがさらに追加されます。ドキュメンテーションの生成には PHP の知識も用いられます。phpDocumentor は、DocBlocks (特殊な PHP コメント) からドキュメンテーションを読み取ってマニュアル形式にします。DocBlocks を使用すると、PHP コードの作成者が該当する情報をドキュメンテーションに提供できます。

HTML コードを作成する際に役立つ可能性のあるもう 1 つのツールは、HTML Tidy です。HTML Tidy はマークアップの誤りを検出し、修正することによって HTML コードをクリーンアップします。また、PHP および XML に対する限定的なサポートも備えています。Eclipse では、マークアップ・エラーのあるコードに色を付けてエラーを見つけやすくしています。


PHP デバッガーのインストールと構成

Drupal モジュールを開発中にデバッグする方法は何通りもあります。var_dump および print_r を使用した方法は申し分なく有効で、テスト・プロセスに組み込むには最適です。その一方で、本格的デバッガーを使用すれば、コードがどのように機能するかを理解し、問題を発見して機能上の問題を解決するのに非常に強力なツールとなります。次のセクションで、デバッガーをインストールして構成し、Eclipse 環境内で使用する方法を説明します。

デバッガーを選ぶ

連載第 3 回第 4 回では、PHPEclipse のインストール方法を説明しました。PHPEclipse は Eclipse のフィーチャーで、PHP ベースのプロジェクトを開発するための IDEパースペクティブを提供します。正しいバージョンの PHP を使用していれば、Eclipse セットアップと連動する DBG デバッガーをインストールおよび構成できます。別のオプションとしては、XDebug デバッガーを使用することもできます。

3 つ目のオプションは、Zend デバッガーを組み込んだ Eclipse 対応の Zend PHP 開発環境です (PHP IDE プロジェクトの詳細は、Zend または Eclipse を参照してください)。このセクションでは以降、Zend ツールをインストールおよび構成して、Drupal モジュールのデバッグに利用する方法を説明します。例として使用するのは、Announcement モジュールです。

PHPEclipse フィーチャーを無効にする

PHPEclipse がインストールされているとしたら、このフィーチャーを無効にするか、またはアンインストールします。まず、図 2 に示すように Help > Software Updates > Manage Configuration メニューを選択して構成管理ダイアログを開きます。

図 2. 構成管理ダイアログを開く方法 Opening the Manage Configuration dialog.

このダイアログ (図 3) には、インストールされている Eclipse のフィーチャー (プラグインの集合) がリストされます。このリストに含まれる PHPEclipse フィーチャーを選択して詳細情報を表示します。

図 3. PHPEclipse フィーチャーの詳細情報
PHPEclipse フィーチャーの詳細情報

リスト内の PHPeclipse を右クリックすると表示されるコンテキスト・メニューには、このフィーチャーを無効にするか、またはアンインストールするためのオプションがあります。ここでは、このフィーチャーを無効にするだけにしてください。プロンプトに従って Eclipse を再起動すれば、このプロセスは完了です。

PHP IDE および Zend デバッガーをインストールする

まず PHP IDE フィーチャーをインストールします。Eclipse を起動して、Find and Install ダイアログを開いてください (Help > Software Updates > Find and Install)。

Search for new features to install にチェック・マークを付けて、Next をクリックします。新しい更新サイトを追加するには、New Remote Site をクリックし、更新 URL とプロジェクトの説明を入力します。この記事を作成している時点で Zend または Eclipse PHP IDE プロジェクト・ページに記載されている更新 URL は、それぞれ http://downloads.zend.com/phpide 、 http://download.eclipse.org/tools/php/updates/ となっています。図 4 に示すような Zend の更新 URL を追加してください。

図 4. Zend 更新 URL の追加Adding the Zend update URL.

更新 URL が追加されたら、PHP IDE リスト項目だけにチェック・マークが付いていることを確認してから Finish をクリックします。Eclipse が利用可能な新規フィーチャーを検索し、図 5 のようなダイアログに検出された新規フィーチャーを表示します。

図 5. 更新 URL による PHP IDE フィーチャーの選択
更新 URL による PHP IDE フィーチャーの選択

このダイアログには、追加された URL から入手できるフィーチャーが表示されます。PHP IDE フィーチャーと Zend デバッガー・フィーチャーの両方にチェック・マークを付けてFinish をクリックすると、Eclipse がこれらの新規コンポーネントのインストールを始めます。このとき、新規フィーチャーのライセンス条件に同意するかどうかを求めるダイアログが表示されるので、Accept にチェック・マークを付けて Next をクリックします。次のダイアログには、インストール内容のリストが表示されます。Finish をクリックしてインストールを続けてください。

コンポーネントのダウンロードおよびインストール中には進行状況ダイアログ (図 6) が表示されます。このダイアログでは、このプロセスをバックグラウンドで実行しながら Eclipse での操作を続けられるオプションを選べます。

図 6. 進行状況ダイアログの Run in Background オプション
進行状況ダイアログの Run in Background オプション

インストールが完了すると Eclipse が図 7 のダイアログを表示するので、Eclipse を再起動して新規フィーチャーをアクティブにします。

図 7. Eclipse の再起動によるインストール済みフィーチャーのアクティブ化
Eclipse の再起動によるインストール済みフィーチャーのアクティブ化

新規 PHP IDE パースペクティブ

図 8 に示すように、Eclipse のパースペクティブ・ダイアログには 2 つの新しい項目、PHP パースペクティブと PHP Debug パースペクティブがリストされているはずです。

図 8. 新規 PHP IDE パースペクティブNew PHP IDE perspectives.

PHPEclipse パースペクティブ・アイコン (ここには示されていません) とは多少異なる PHP および PHP Debug のパースペクティブ・アイコンは、PHP 開発用の新しいレイアウトを表示します。図 9 に、この新しいパースペクティブを示します。

図 9. 新規 PHP IDE パースペクティブ
新規 PHP IDE パースペクティブ

既存の PHP プロジェクトを表示したまま、新規 PHP パースペクティブを選択してください。PHP Explorer、PHP Project Outline、PHP Functions など、新しいペインがいくつかあることに気付くはずです。Outline ペインに編集中の PHP ファイルに含まれる関数が 1 つも表示されていない場合は、プロジェクトをマイグレーションすると表示されます。

PHP IDE に既存の PHPEclipse プロジェクトをマイグレーションする

連載第 3 回第 4 回の手順に従っている場合は、PHPEclipse プロジェクトがセットアップされているはずです。PHP IDE パースペクティブのフィーチャーを利用するには、既存のプロジェクト・ファイル (.project) に少々変更を加えなければなりません。このファイルは、Eclipse ワークプレースの下のそのプロジェクト・ディレクトリー内にあります。これは隠しファイルなので、File > Open を使って手作業で編集するか、あるいは一般的なテキスト・エディターを使って Eclipse 外部で編集します。このファイルは、リスト 1 のようになっているはずです。

リスト 1. PHPEclipse フィーチャーで作成されたプロジェクト・ファイルの例
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>drudal.development</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>net.sourceforge.phpeclipse.parserbuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>net.sourceforge.phpeclipse.phpnature</nature>
	</natures>
</projectDescription>

この XML ファイルの buildSpec および natures セクションに、2 つの PHPEclipse クラスへの参照が含まれています。これらの参照を、リスト 2 に従って PHP IDE クラスへの参照に変更してください。

リスト 2. PHP IDE フィーチャーで作成されたプロジェクト・ファイルの例
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name> drudal.development </name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>org.eclipse.php.core.PhpIncrementalProjectBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>org.eclipse.php.core.PHPNature</nature>
	</natures>
</projectDescription>

.module ファイル (および .inc ファイルと .engine ファイル) のテキストのカラー化を有効にするには、Eclipse 設定を編集する必要があります。Window > Preferences メニューを選択して Preferences ダイアログを開いてください。左上のフィルター・フィールドに type と入力し、General の下にある Content Types を選択します。PHP Content Type を選択すると、ファイル拡張子 (.php、.php3、.php4 など) のリストが表示されます。Add を選択し、ファイル・アソシエーションとして *.module を追加します。詳細は、図 10 を参照してください。

Preferences ダイアログでは、ファイルのデバッグを開始するときに、どのブラウザーを使用するかをコントロールできます。使用するブラウザー (外部または内部のブラウザー) は、General / Web Browser カテゴリーから選択します。外部ブラウザーを選択すると、使用するブラウザーをインストール済みのブラウザーのなかから選べます。

図 10. 既知のコンテンツ・タイプにファイル・タイプ *.module を追加して PHP コンテンツ・タイプと関連付ける方法
既知のコンテンツ・タイプにファイル・タイプ *.module を追加して PHP コンテンツ・タイプと関連付ける方法

これで Eclipse アプリケーションを再起動すると、PHP プロジェクトが Outline ペインをはじめとする PHP IDE フィーチャーをフルに活用するようになります。

サーバー側の Zend デバッガーをインストールして構成する

Eclipse PHP Debug パースペクティブを機能させるには、Zend デバッガーの追加パーツを PHP システムの一部としてインストールする必要があります。前述した Zend PHP IDE プロジェクト・ページの下の方に、各種プラットフォームに対応した Zend デバッガー拡張機能のバイナリーへのリンクがあります (図 11)。

図 11. Zend デバッガー拡張機能のバイナリーへのリンク
Zend デバッガー拡張機能のバイナリーへのリンク

このリンクをクリックすると、ダウンロード可能なファイルと対応プラットフォームのリストが表示されます (ZendDebugger-5.2.1-Windows-i386.zip for Windows XP など)。このファイルをダウンロードして、一時ディレクトリーに解凍します。README ファイルの指示に従って、Windows の場合はダイナミック・リンク・ライブラリー (DLL) を第 3 回で作成した PHP 拡張ディレクトリー C:\php\ext に配置し、リスト 3 の追加行で PHP 構成ファイル php.ini を更新します。

リスト 3. PHP構成ファイル php.ini の追加行
zend_extension_ts=c:\php\ZendDebugger.dll.
zend_debugger.allowed_hosts=localhost
zend_debugger.expose_remotely=always

その他のディレクティブについては、core php.ini directives の記述を参照してください。

新しい拡張機能を有効にするには、通常は Apache の再起動が必要です。


PHP のデバッグ

PHP IDE と Zend デバッガーのすべてのパーツが準備できたので、今度は Eclipse 内の現行 Drupal プロジェクトを使用してデバッグ・セッションをセットアップします。デバッガーが実行中であることが分かるように、ブレークポイントを設定して HTTP 要求のライフ・サイクルで検出されるようにします。この例では、index.php ファイルを使用することにします。これは、Drupal システムに対する要求で最初にサーバー側で呼び出されるファイルです。

ブレークポイントを作成する

プロジェクトで index.php ファイルを開きます。ブレークポイントを切り替えるには、コード行の横にあるグレーの余白をダブルクリックします。図 12 では、Drupal ブートストラップが開始される行にブレークポイントが設定されています。

図 12. ブレークポイントが設定された Drupal の index.php ファイルThe Drupal index.php file with a breakpoint set.

デバッグ・セッションを構成する

次に必要なのは、デバッグ・セッションを構成することです。Eclipse ウィンドウの bug アイコンの隣にある下矢印 (図 13) をクリックし、Debug を選択します。

図 13. デバッグ構成ダイアログを開く方法
デバッグ構成ダイアログを開く方法

デバッグ構成ダイアログ (図 14) が表示されているはずです。デバッグ・セッションの新規作成を開始するには、左側のペインにリストされている PHP Web Page をクリックします。

図 14. 新規 PHP スクリプト・デバッグの構成
新規 PHP スクリプト・デバッグの構成

構成名を入力します (Watch a Drupal request など)。サーバーの詳細を編集するには、Configure をクリックします。これによって、図 15 のようなダイアログが表示されます。

図 15. デバッグ・セッション用サーバーの構成
デバッグ・セッション用サーバーの構成

サーバー詳細に名前を付けます (Drupal development server など)。開発サーバーの URL フィールドと、第 3 回第 4 回で定義した Eclipse ワークスペースのパスを入力し、OK をクリックします。

デバッグ構成ダイアログに戻ったら、File/Project フィールドに第 3 回第 4 回で定義したプロジェクト名を入力します。Auto Generate にチェック・マークが付いていることを確認します。ダイアログはこの時点で、図 16 のようになっているはずです。

図 16. デバッグ構成ダイアログの入力済みサーバー・ペイン
デバッグ構成ダイアログの入力済みサーバー・ペイン

デバッグ・セッションを実行する

ここで、Debug をクリックしてください。Eclipse が PHP Debug パースペクティブに切り替えるため、図 17 のダイアログを表示します。Remember my decision にチェック・マークを付けると、デバッグ・セッションを実行するたびにこのダイアログが表示されることがなくなります。

図 17. PHP Debug パースペクティブへの切り替え
PHP Debug パースペクティブへの切り替え

パースペクティブが図 18 のような表示に変わります。

図 18. PHP Debug パースペクティブ
PHP Debug パースペクティブ

HTTP 要求が Web ページのレンダリングを準備する時点で、新しいブラウザー・ウィンドウも開きます。

進行状況を制御するデバッグ・ビュー (図 19) には、デバッグ・セッションのバックトレースとステータスが表示されます。上部に並んだコントロールを使って、行ごとにコードを停止、中断、再開、ステップスルーできます。

図 19. PHP Debug パースペクティブ内の Debug ペイン
PHP Debug パースペクティブ内の Debug ペイン

図 20 の Variables ビューには、デバッグ・セッションが進行するのに従って、コードによって定義された変数のリストが表示されます。変数の値をクリックすると、デバッグ・セッションがブレークポイントで中断されている間にその値を変更できます。

図 20. PHP Debug パースペクティブ内の Variables ペイン
PHP Debug パースペクティブ内の Variables ペイン

コードを行ごとにステップ実行するには、F5 を押します。コードのデバッグ中には、中央のビューに表示された PHP ファイルで、現在計算中のアクティブなコード行が強調表示されます。ここでの例では、デバッグ・パースペクティブが表示された直後に F5 を押すと、bootstrap.inc ファイルに含まれる drupal_bootstrap 関数の先頭行が表示されます。index.php ファイルの drupal_bootstrap に対する関数コールまで進めるには、代わりにステップ・オーバー (step over) 操作または F6 を使用します。これにより、index.php ファイルの次の行に進むことができます。

最後のリターンに到達するまでコードの残りすべての行をステップスルーしないで drupal_bootstrap 関数から戻るには、ステップ・リターン (step return) 操作または F7 を使用します。

デバッグ・セッション中に警告またはエラーが発生すると、Console ペインに表示されます。

この HTTP 要求の実行中には、データベース接続が作成される様子、ユーザー・セッションが作成される様子、Drupal 変数が定義される様子、そして Web ページが作成されて Web ブラウザーにレンダリングされる様子を確認することができます。この例は、PHP ID デバッガーの使用方法に慣れてもらうために極めて単純にしてあります。


コード変更の追跡

連載第 3 回では、CVS のコード変更を管理するために Eclipse が提供している優れたサポートについて説明しました。このセクションでは、私たちが IBC サイトの開発中に見つけた一般的な使用シナリオをいくつか取り上げます。CVS の高度なフィーチャー (ブランチやマージなど) の詳細については説明しませんが、これらのフィーチャーを使用する準備ができたら Eclipse 内から使用することができます。

Eclipse で CVS を使用する際の一般的なワークフローは以下のとおりです。

  • CVS リポジトリー接続を作成する
  • ソース・コードをインポートまたはチェック・アウトする
  • ソース・コードに変更を加える
  • 変更を CVS リポジトリーと同期させる

上記の 4 つの項目が、開発者が CVS でプロジェクトを調整する手順の中核となります。それではまず、Eclipse ワークスペース内に新規 CVS リポジトリー接続を追加するところから始めましょう。

CVS Repository Exploration パースペクティブを開くと、画面は図 21 のようになります。左側にあるのは CVS Repositories ビューで、ここには Eclipse が認識するすべての CVS リポジトリーが表示されます。CVS Repositories ビューの内側を右クリックし、図 22 に示すように New > Repository location を選択してください。

図 21. CVS Repository Exploration パースペクティブ
CVS Repository Exploration パースペクティブ

図 22. CVS パースペクティブでの新規リポジトリー・ロケーションの作成Right-click context menu to create a new repository location.

CVS リポジトリーの詳細を入力するためのダイアログが表示されます。このダイアログに必要なリポジトリー情報を入力した例が、図 23 です。

図 23. Eclipse ワークプレースへのCVS リポジトリーの追加
Eclipse ワークプレースへのCVS リポジトリーの追加

上記ではロケーション情報として、サーバーのホスト名、そしてそのサーバー上で CVS リポジトリーが含まれているディレクトリーが入力されています。ユーザー名とパスワードを入力し、この CVS リポジトリーの接続タイプを選択します。CVS リポジトリーの接続タイプとしては、人気の高い 2 つのメカニズムがあります。1 つは、図 23 で選択されている extssh です。一般的には extssh のほうがもう一方の接続タイプよりセキュアなため推奨されています。2 番目に人気が高いのは、pserver と呼ばれる CVS が提供する標準接続タイプです。どちらの接続タイプを選択すべきか分からない場合は、システム管理者に連絡してください。

CVS リポジトリー接続が追加されたので、今度はプロジェクトを CVS サーバー上で共有します。この作業は Eclipse ウィザードを使って簡単に行えます。このウィザードには、図 24 に示すように Team の下の Share Project メニュー項目からアクセスします。

図 24. プロジェクトを CVS で共有するための Team メニュー
プロジェクトを CVS で共有するための Team メニュー

ソース・コードを保管する CVS リポジトリーを選択するよう求めるプロンプトが表示されるので、上記で作成したリポジトリーを選択して、Next をクリックします (図 25)。

図 25. CVS リポジトリーの選択
CVS リポジトリーの選択

次に、このプロジェクトを CVS サーバー上で識別するモジュール名を入力します。図 26 のようなダイアログが表示されるので、Use project name as module name を選択します。ただし、特定の理由がある場合は、独自のモジュール名を作成したり、既存のモジュールを使用しても構いません。

図 26. プロジェクトのモジュール名の入力Enter a module name for the project.

この時点で、CVS リポジトリーにインポートされるコードを確認するよう求めるプロンプトが表示されます。このダイアログ (図 27) では、CVS リポジトリーに送信するすべてのファイルとディレクトリーを確認できます。すべてが正しいこと、そして Launch the Commit wizard にチェック・マークが付いていることを確認したら、Next をクリックします。

図 27. CVS で共有するリソースの確認
CVS で共有するリソースの確認

Eclipse CVS クライアントは、CVS リポジトリーに送信するファイルにどのようなコンテンツが保管されているかを推測しようとします。PHP ソース・ファイルのようなファイルは既知のファイル・タイプなので推測するのは簡単ですが、Eclipse が一切の情報を持っていないファイルを CVS にインポートするという場合もあります。このような場合は、ユーザーが Eclipse を支援してファイルに含まれるコンテンツの種類を分類することになります (テキスト・データとバイナリー・データのどちらか)。図 28 は、Eclipse にとって不明なファイル・タイプがリストされたダイアログの例です。Drupal プロジェクト内にあるこれらのファイルはすべて ASCII Text なので、CVS リポジトリーには ASCII Text として保管されることになります。必要な変更を行ったら、Next をクリックします。

図 28. リソース・エンコード方式の変更
リソース・エンコード方式の変更

図 29 に、インポート・プロセスの最後のステップを示します。ファイルを再確認するためのオプションがあり、コミットするファイルとその理由について説明するコメントを入力することもできます。CVS リポジトリーに変更をコミットする際には常に、意味のあるメッセージを入力してください。コミット・メッセージを入力し終わったら、Finish をクリックします。

図 29. CVS にコミットするリソースへのコミット・メッセージの追加
CVS にコミットするリソースへのコミット・メッセージの追加

これでソース・コードは CVS リポジトリー内に常駐する状態になったので、比較とリグレッション・テスト用に前のバージョンを維持しながら必要な変更を加えることができます。コードの作成とテストが完了したら、CVS リポジトリーにコミットします。ここからは、変更を CVS リポジトリーに送信し、更新をチーム・メンバーから受信する Synchronize with Repository メソッドに焦点を絞ります。ただし場合によっては、プロジェクト全体を同期させるより、単一のファイルを更新またはコミットしたほうが便利なことがあります。そこで、プロジェクトを CVS リポジトリーに同期させる方法について説明する前に、単一のファイルのコミットと更新について取り上げます。

図 30 を見ると、Team メニュー (プロジェクト内のファイルまたはディレクトリーを右クリックすると表示されます) には、Commit および Update が含まれていることがわかります。Commit を選択すると変更が CVS リポジトリーに送信され、Update を選択すると CVS リポジトリーから変更が取得されます。いずれの場合も、CVS はユーザーのファイル・バージョンとリポジトリー内のファイル・バージョンをマージしようとします。何らかの理由で CVS がこの 2 つのファイル・バージョンをマージできない場合は、手作業でマージしなればならなくなります (このプロセスの概要は、CVS ドキュメンテーションに記載されています)。

図 30. 個別ファイルのコミットまたは更新Commit or update individual files.

リポジトリーと同期させる

あなたとチームの双方がコードに変更を行ったので、これらの変更を CVS リポジトリーとの間で送受信する必要があります。前述したように、個別のファイルを更新およびコミットすることは可能ですが、変更が多い場合には、このプロセスは効率的ではありません。多数の変更を送受信するのに適切な方法は、Team メニュー項目の Synchronize with Repository を使用することです。このメニュー項目を選択すると Team Synchronizing パースペクティブに切り替わり、ローカル・コンピューターと CVS リポジトリー間で生じたソース・コードのバージョンの違いが判別されます。図 31 に、Synchronize with Repository メニュー項目を示します。

図 31. CVS リソースにコミット、および CVS リソースから更新するための CVS Team メニュー
CVS リソースにコミット、および CVS リソースから更新するための CVS Team メニュー

図 32 に、Team Synchronizing パースペクティブを示します。このパースペクティブには変更の概要が表示され、個別ファイルでの変更を確認できるようになっています。画面の左側にあるのが Synchronize ビューで、ここには同期する必要があるすべてのファイルがリストされます。このビューには、同期するファイルをフィルタリングする 4 つのモードがあります。

図 32. Team Synchronize パースペクティブTeam Synchronize Perspective.

図 33 は、4 つのモードをアクティブにするボタンです。

図 33. 同期モード・ボタン
同期モード・ボタン

図 33 の 4 つのモードについて以下に説明します。

モード: 表示内容:
受信CVS リポジトリー内に新規バージョンがあるため、更新が必要なファイル
送信ローカル側で変更されたため、CVS リポジトリーにコミットする必要があるファイル
送受信受信モードと送信モード両方のすべてのファイル
競合自動的にマージできないため、手操作による介入が必要なファイル

自分が行った変更とチーム・メンバーが行った変更をどちらも確認できるように、送受信モードになっていることを確認してください。アイコンを見れば、送信ファイルであるか、受信ファイルであるかがわかります。グレーの右矢印は送信される変更を示し、青の左矢印は受信する変更を示します。プラス記号 (+) が付いた矢印はファイルが追加されていることを示し、マイナス記号 (-) が付いた矢印はファイルが削除されていることを示します。また、プラス記号もマイナス記号も付いていない矢印は変更が行われたことを意味し、その変更が行われた場所は矢印の方向によって示されます。図 34 に、これらのアイコンの例を示します。

図 34. ステータス・アイコンの例
ステータス・アイコンの例

Synchronize ビューに表示される情報が理解できたところで、今度は情報を操作してみましょう。ファイルまたはディレクトリーを右クリックすると、図 35 のようなメニューが表示されます。

図 35. Synchronize ビューのコンテキスト・メニュー
Synchronize ビューのコンテキスト・メニュー

頻繁に使用することになるのは、以下の 2 つのメニュー項目です。

Update
ローカル側のコピーとリポジトリー内のコピーとの間で変更をマージします。
Commit
ローカル側の変更をリポジトリーにコミットします。

CVS にローカル側のソース・ファイルとリポジトリーとの間で変更を自動的にマージさせるには、Update メニュー項目を使用します。これを使用するのは、ローカル側でファイルを変更した一方、チーム・メンバーも同じファイルに変更を行って、その変更をすでにリポジトリーにコミットしている場合です。ソース・ファイルを更新したら、変更をリポジトリーにコミットする必要がありますが、変更をリポジトリーに送信するには Commit メニュー項目を使用します。このメニュー項目を使用するのは、ローカル側でファイルを変更し、他には誰もリポジトリー内にある同じファイルに対する変更をコミットしていない場合です。

ときにはローカル側のファイルとリポジトリー内のファイルとの違いを調べなければならないことがあります。その場合、Synchronize ビューに表示されたいずれかのファイルを開くと、比較エディターが開きます。図 36図 37 は、比較エディターの例です。比較エディターの左側にはローカル側のソース・ファイルが表示され、右側にはリポジトリーのファイルが表示されます。この 2 つのファイル間に変更箇所がある場合、左右両側で変更箇所がボックスに囲まれて表示されます。何が変更されたか把握して、その変更が適切なものであると判断したら、Synchronize ビューのコンテキスト・メニューを使って変更をリポジトリーに送信します。

図 36. リポジトリーが表示された Synchronize ビュー
リポジトリーが表示された Synchronize ビュー
図 37. リポジトリーが表示された別の Synchronize ビュー
リポジトリーが表示された別の Synchronize ビュー

まとめ

この記事では、引き続き Eclipse 環境での開発プロセスを検討し、開発プロセスで Eclipse を使って簡単にコードを作成、デバッグ、管理、そしてデプロイする方法、そして本格的デバッガーでコードをステップ・スルーして PHP コードの変数を検査する方法を説明しました。また、CVS を使用してローカル側のコード開発を他のチーム・メンバーのコード開発と同期させる例も紹介しました。

第 14 回では、アナウンスメント・モジュールの完全なコードと、それに対応するダウンロード可能なファイルを用意します。


ダウンロード

参考文献

学ぶために

  • PHP IDE プロジェクトは PHP Dev Tools プロジェクトに変わりましたのでご注意ください。PHP Dev Tools プロジェクトに関する詳細を入手して Eclipse.org について学んでください。
  • Eclipse PHP デバッガー: このプロジェクトの詳細を学んでください。
  • HTMLtidy: HTML Tidy プログラムのメンテナンスとさらに高度な開発について読んでください。
  • phpDocumentor: 現在標準となっている php 言語の自動ドキュメンテーション・ツールです。
  • developerWorks の Architecture ゾーンにアクセスして、IT アーキテクチャー分野でのスキルを伸ばすために必要な資料を入手してください。
  • developerWorks technical events and webcasts で最新情報を入手してください。
  • テクノロジーのブックストアで、この技術やその他の技術に関する本を探してください。
  • この連載の RSS フィード (RSS の詳細を調べてください。)

製品や技術を入手するために

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。プロフィールで選択した情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Sample IT projects, Open source
ArticleID=260929
ArticleTitle=オープン・ソース・ソフトウェアによる協調 Web サイトの設計、開発、デプロイメント 第 13 回: Eclipse 内での PHP 開発
publish-date=07032007