この記事では、現在のソフトウェアエンジニアリングでよく使用されている継続的インテグレーションの概念を紹介し、また、PHP開発でPHPの現在のオープンソース継続的インテグレーション管理ツールの一部を上手に活用して管理する方法についても紹介します。それはプロジェクトです。
継続的インテグレーションの概念
継続的インテグレーションの概念は、アジャイル開発方法論で初めて見られました。継続的インテグレーションはソフトウェア開発の実践です。つまり、チーム開発メンバーは自分の作業を統合することが多く、通常、各メンバーは少なくとも 1 日に 1 回統合します。これは、毎日複数の統合が発生する可能性があることを意味します。各統合は自動ビルド (コンパイル、リリース、自動テストを含む) によって検証され、統合エラーをできるだけ早く検出します。多くのチームは、このプロセスにより統合の問題が大幅に軽減され、チームが一貫したソフトウェアをより迅速に開発できるようになることを実感しています。
以下は PHP の継続的統合ツールを紹介します:
PHPUNIT
まず第一に、PHPUNIT は PHP の単体テスト ツールです。プロジェクトのアドレスは http://www.phpunit.it です。作成した単体テスト コードを自動的に実行し、合格または不合格の結果を与えることができます。インストール手順は次のとおりです。 PHP で PEAR を使用してインストールできます。
<ol class="dp-c"> <li class="alt"><span><span>sudo apt-get install php5-curl php-pear php5-dev </span></span></li> <li><span>sudo pear upgrade pear </span></li> <li class="alt"><span>sudo pear channel-discover pear.phpunit.de </span></li> <li><span>sudo pear channel-discover components.ez.no </span></li> <li class="alt"><span>sudo pear channel-discover pear.symfony-project.com </span></li> <li><span>sudo pear install phpunit/PHPUnit </span></li> </ol>
その後、次の形式で phpunit をコマンドラインで実行できます。
Phpunit 単体テスト php ファイル名.php
さらに、次のコマンドを実行して単体テスト カバレッジ レポートを生成することもできます:
phpunit --coverage-html ../CodeCoverage
これにより、指定されたディレクトリに単体テスト カバレッジ レポートが生成されます。たとえば、この例では、unit になります。テスト カバレッジはディレクトリ CodeCoverage に生成されます。レポートは次のようになります:
498)this.width=498;' onmousewheel = 'javascript: return big(this)' style="cursor: hand" border= 1" alt="PHP開発に必要なPHP継続的インテグレーション ツール紹介(前編)" href="/picshow/index595837.shtml" src="http://www.bkjia.com/uploadfile/2013/0904/20130904095310781. jpg" />▲クリックすると大きな画像が表示されます
▲クリックすると拡大画像が表示されます
▲クリックすると拡大画像が表示されます
PHP depend (http://pdepend.org/) は、PHP の静的コード分析のためのツールです。これは、PHP プロジェクト内のコードのサイズと複雑さをチェックするために使用できます。インストール方法は以下の通りです:
<ol class="dp-c"><li class="alt"><span><span>sudo pear channel-discover pear.pdepend.org </span></span></li><li><span>sudo pear install pdepend/PHP_Depend-beta </span></li></ol>
使用例は以下の通りです:
pdepend --jdepend-xml=../jdepend.xml --jdepend-chart=../dependency.svg --overview-pyramid= ../overview -pyramid.svg
上記により、XML ファイルと 2 つの SVG グラフィック ファイルが生成されます。 XML ファイルには、プロジェクト内の各 PHP ファイルの相互依存呼び出し (参照) と、各メソッド、関数、クラスのコード行が記述されています。例は次のとおりです。
<ol class="dp-c"><li class="alt"><span><span><?xml version=”1.0” encoding=”UTF-8”?> </span></span></li><li><span><metrics noc=”3” nof=”0” noi=”0” nom=”6”> </span></li><li class="alt"><span><package name=”+</span><span class="keyword">global</span><span>” noc=”17” nof=”0” noi=”0” nom=”237”> </span></li><li><span><</span><span class="keyword">class</span><span> name=”data_container”nom=”55”> </span></li><li class="alt"><span><file name=”/home/</span><span class="keyword">case</span><span>-study/libs/data/container.php”/> </span></li><li><span></</span><span class="keyword">class</span><span>> </span></li><li class="alt"><span><</span><span class="keyword">class</span><span> name=”data_download” nom=”10”> </span></li><li><span><file name=”/home/</span><span class="keyword">case</span><span>-study/libs/data/download.php”/> </span></li><li class="alt"><span></</span><span class="keyword">class</span><span>> </span></li></ol>
noc の意味は、クラスの筆記体です。 code、nof は関数のコードの行数、noi はインターフェイス コードの行数、nom はメソッド コードの行数です。
次に、次のような生成された SVG 画像を見てみましょう:
この図では、上部の ANDC は他のクラスから継承するクラスの平均数を表します。つまり、プロジェクト内のクラスが他のクラスから継承するレベルの数が AHH になります。 CALLS はメソッドが呼び出される合計回数、FANOUT はクラスによって参照される型の数です。 CYCLO は循環複雑度です (循環複雑度の分析については、(http://en.wikipedia.org/wiki/Cyclomatic_complexity) を参照してください)。LOC はコードの行数、NOM はプロジェクト内のメソッドの数です。 NOC はプロジェクトのクラス数、NOP はプロジェクト内のパッケージの数です