PHPは、最も有名なオープンソースのサーバーサイドスクリプト言語で、2億5千万を超えるWebサイトを支えています。PHPには、詳細なドキュメント、すぐに使用できる多くのスクリプト、よくサポートされているフレームワークがあり、巨大なコミュニティもあります。最も重要なのは、PHPを使い始めるのは他のどんなスクリプト言語よりもはるかに簡単だということです。
本記事では、PHPアプリケーションを適切に分析、テスト、デバッグ、最適化するのに役立つ興味深いツールをすべてご紹介します。ここで挙げるPHPを使用すれば、時間を節約するだけでなく、セキュリティの問題を減らし、パフォーマンスを向上させる保守性の高いコードを作成できます。
20. Whoops
Whoopsはエラーハンドラフレームワークであり、Webプロジェクトを、より楽な方法でデバッグするための優れたインターフェイスが付属しています。柔軟なスタックベースのエラー処理、必要な依存関係のないスタンドアロンライブラリ、および例外、トレースフレームとそのデータを処理するためのシンプルなAPIを提供します。
19. Debug Bar
Debug bar は、アプリの任意の部分からのプロファイリングデータを表示できます。標準のPHP機能と人気のプロジェクト用のデータコレクタが組み込まれています。依存関係のない汎用デバッグバーを備え、AJAXリクエストを処理します。クライアントサイドバーは完全にJavaScriptでコーディングされています。
18. Pinba
Pinbaは、開発者がPHPスクリプトのパフォーマンスを監視し、ボトルネックをリアルタイムで特定できるように設計されたMySQLストレージエンジンです。 UDPを介して送信されたデータを収集して処理し、人が読める形式で統計を表示します。さらに、より洗練されたレポートと統計を作成するために、生データへの読み取り専用インターフェースを提供しています。
17. PHPLOC
PHPLOC は、プロジェクトのサイズをLOC(ソースコードの行数)、クラスの数、ファイルの数などで測定するためのツールです。 Gitのリビジョンをウォークスルーし、CSV形式で遡及レポートを生成できます。ユーザーがしなければならないのは、PHPLOCの必要な依存関係がすべて単一のファイルにバンドルされたPHPアーカイブをダウンロードすることだけです。
16. PHP Profile Class
PHP Profile Classを使用すると、アプリケーションコードのボトルネックを見つけ、最適化により利益を受ける領域を見つけることができます。このツールは、ページのレンダリングにかかる合計時間を計算し、指定されたメソッドの実行時間を記録します。
15. Selenium
Seleniumは、アプリケーション全体を調べるためのユーザー受け入れテストを作成できる自動テストフレームワークです。独自のWebDriver APIと組み込みのグリッド機能があります。 Seleniumを使用すると、堅牢なブラウザーベースの回帰テストの自動化スイートを作成し、バグ再現スクリプトをすばやく作成し、スクリプトをスケーリングして多くの環境に分散させることができます。
14. Peridot
Peridot は、PHP用の軽量で拡張性のあるビヘイビア駆動型の開発テストフレームワークです。イベント駆動型アーキテクチャを使用すると、プラグインとレポーターを介してフレームワークを簡単にカスタマイズできます。Peridotでは、describe-it構文を使用して、アプリケーションコードが意味のある言語でどのように振る舞うべきかを簡単に記述することができます。
13. vfsStream
vfsStreamは、SimpleTestやPHPUnitなどの任意の単体テストフレームワークと一緒に使用できます。vfsStreamは、仮想ファイルシステム用のPHPストリームラッパーであり、実際のファイルシステムをモックする単体テストに役立ちます。例に示すように、テストケースははるかに小さく、vfsStreamを使用すると、テストの実行中に発生する可能性のある他の操作の影響を受けないため、ファイルシステム環境の表示を制御できます。
12. Storyplayer
Storyplayerは、プラットフォーム全体のエンドツーエンドのテストを作成し、ステージング、QA、本番環境に対して同様に実行できるフルスタックフレームワークです。プラットフォーム内の各サービスのテストを記述し、それらのテストをコードおよび単体テストと一緒に保存できます。
Storyplayerは、TDD(テスト駆動開発)テスト手法に従い、オンデマンドでテスト環境の作成と破棄をサポートします。すべてのテストはPHPで書かれています。
11. PHP Mess Detector
PHP Mess Detector は使いやすく、PHP_Dependによって測定された生のメトリックのフロントエンドを簡単に設定できます。乱雑なコード、潜在的なバグ、使用されていない式、複雑すぎるメソッド、効率の悪いコードなどを探します。事前定義されたルールは限られていますが、独自のルールを作成して、分析されたソースコード内で発生する可能性のあるエラーを検出することもできます。
10. Xdebug
Xdebug PHP拡張は、デバッグおよびプロファイリング機能を提供しています。DBGpプロトコルを使用して、エラーメッセージのスタックトレースと関数トレース、無限再帰へのメモリ割り当てと保護に関する情報を抽出します。さらに、コードカバレッジ分析と、デバッガーをフロントエンドで使用してインタラクティブにソースコードをデバッグする機能を提供しています。
9. SimpleTest
SimpleTestは、テスト駆動開発スタイルを使用するPHP単体テストおよびWebテストフレームワークです。 SSL、フレーム、フォーム、プロキシ、基本認証をサポートしています。SimpleTestは、完全なPHP開発者テストソリューションを目指しており、使いやすく、拡張も簡単です。SimpleTestには、PHPUnitおよびJUnitポートに想定される一般的な関数とモックオブジェクトが含まれています。
8. Kahlan
Kahlanは、フル機能のBDDテストフレームワークであり、describe-it構文を使用してコードの振る舞いを記述します。Kahlanの使用により、PECL拡張機能を使用せずに、JavaScriptのようにコードで直接スタブまたはモンキーパッチを使用できます。さまざまな組み込みのレポーターとエクスポーターが付属しています。
Kahlanのコードベースは小さく、PHPUnitの1/10であり、KISS(Keep It Simple, Stupid)の原則に基づいて機能しています。このツールは拡張可能であり、カスタマイズ可能なワークフローをサポートしています。
7. Cucumber
Cucumberは、ビヘイビア駆動型の開発ツールであり、Cucumberを使用して簡単な英語でテストを記述し、サードパーティのツール(Seleniumなど)と組み合わせて、ブラウザー内でテストを実行できます。Cucumberは主にRuby on Railsアプリケーションをテストするために作成されていますが、PHP、Python、Javaなどの多くの主流のプログラミング言語でも使用できます。
6. PHP CodeSniffer
CodeSniffer は、ソースコードをチェックし、構文違反または定義されたコーディング規約の違反を検出します。 PHPと共に、JavaScriptおよびCSSファイルで機能します。CodeSnifferは2つのPHPスクリプトを組み合わせたものです。最初のスクリプトは、CSS、PHP、およびJavaScriptをトークン化して違反を検出するphpcsです。 2番目は、違反を自動的に修正するphpcbfです。
5. Atoum
Atoumは、テスト開発環境を簡易化するように設計された、シンプル、モダンで直感的な単体テストフレームワークです。Atoumは自然言語に近い方法で単体テストを記述することを可能にする流れるようなインターフェースを特徴としています。各テストメソッドを独自のPHPプロセスで分離することにより、テスト実行中の高度なセキュリティを実現します。
Atoumは、今日のマルチコアCPUを利用してテストスイートを可能な限り高速に実行するために、並列化された環境でテストを実行します。また、継続的インテグレーションツールと互換性のあるXunit形式で単体テスト実行レポートを生成することもできます。
4. PHPSpec
PHPSpec は、ビヘイビア駆動開発(BDD)を使用してクリーンで機能するPHPコードを作成するのに役立ちます。この手法では、まずPHPSpecを使用して、作成しようとしているオブジェクトの振る舞いを記述し、次に要件と仕様を満たすのに十分なコードを作成し、最後にこのコードをリファクタリングします。ユーザーは、このツールのコンセプトと機能により、「正しい」ことに集中できます。
3. Behat
Behatは、オープンソースでビヘイビア駆動型(BDD)のPHPテストフレームワークです。 Behatを使用すると、アプリケーションの振る舞いを説明する人が読める形式のストーリーを作成できます。このストーリーは、アプリケーションに対してさらにテストできます。シナリオごとにコンテキストオブジェクトを作成し、同じオブジェクト内ですべてのシナリオステップを実行します。また、Behatテストの実行を担当する強力でさまざまなオプションを備えたコンソールユーティリティが付属しています。
2. PHPUnit
PHPUnitは、コマンドラインから使用できる、広く使用されているプログラマー指向のテストフレームワークです。PHPUnitは、単体テストフレームワーク用のxUnitアーキテクチャのインスタンスです。要件に応じて拡張できる便利なTestCaseクラスが多くあります。さらに、テスト駆動開発を実施し、事前に作成されたアサーションメソッドを使用できます。
1. Codeception
Codeceptionでは、単体テストだけではなく、受け入れテスト、機能テスト、およびAPIテストを実施できます。フレームワークはPHPUnitに非常に似ており、テストに必要なものはすべて組み込まれています。開発のニーズに応じて、さまざまなモジュールを有効化して設定できます。
自動化テストフレームワークと開発フレームワークを統合するために、CodeceptionはYii、Symfony2、Phalcon、Zend Framework、Laravelなどの他の多くのPHP開発フレームワークと統合されています。