skillup

技術ブログ

PHP

PHPの開発事情 (PHPBrew/ビルトインサーバー/Xdebug/PHPUnit/Composer)

投稿日:2016年4月23日 更新日:

私自身、プログラミングは好きなんですがあまり現代の流行の技術に興味がありません(汗)

IT業界はドッグイヤーならぬ、マウスイヤーとも呼ばれているようで、常に最新技術の動向には目を光らせていく必要があります。

ただし、技術のメリット・デメリットを理解しておくことがそれ以上に大事であることは言うまでもありませんが・・・

今回はPHPのモダンな開発環境について。

プログラミング環境

PHPBrew

使ったことないっす。

PHPのバージョン管理ツールでようはPHP5.3と5.6を使い分けたいとかそういった用途で使われるものらしいです。Rubyなんかでは聞いたことがありますね。

PHP5.3だと配列の書き方で[]が通用しなくて、これ修正するのに一度書き直したりとかしてましたっけ。こういう時にバージョンを切り替えたりできたら確かに便利ですね。

phpenvやphpbrewの雑な比較
PHPのバージョン管理はphpbrewが使いやすいです

ビルトインサーバー

テスト環境のみで使える簡易的なWEBサーバー。

通常PHPの開発ではapacheやnginxなどのサーバーを立てることが多いと思いますが、5.4以降ではPHPに内蔵されているWebサーバーがあるためこれを使えば簡単な動作確認などが楽になるようです。

ローカルマシンの開発サーバとしてPHPビルトインサーバを使う

デバッガ Xdebug

これを使うことで

var_dumpを見やすくしたり、スタックトレースを見ることができます。個人的にはスタックトレースの見方が変わるのが便利。

Xdebug によるスタックトレースの機能拡張

ユニットテスト PHPUnit

テストコードを書いたりするときに便利。が、個人的には結構使えるケースが限られるためあんまり使ってないです・・・

PHPの単体テストを自動化したかったので、phpunitを試してみた。

パッケージ管理やライブラリ

PEAR

一昔前ではPHPのライブラリといえばこれでした。まあ今でも多くの現場では使っていると思いますが・・すたれつつある理由としては、依存関係がらみでエラーがでてしまうことや古いバージョンを使ったりするとまともに動かないものが多いことですかね。

現状では積極的には使わないほうがよい、とされているようです。

これを解消するために後述するComposerが使われています。

Composer

PHPの依存関係の管理ツールでようはyumのようにパッケージ間の依存関係を解消してライブラリをインストールできるツールと認識しています。

これをつかい設定ファイルにphpのバージョンやインストールしたいライブラリのバージョンなどを書いておくと、依存関係を解消して取り込んでくれます。

また複数ファイルを読み込むときにいちいちプログラムのトップにrequireを書くのではなく、自動的にrequireを行うオートローダーという仕組みを利用することでこれを解決しています。
composer 導入をまじめに考える

参考資料

WEB+DB 2014年5月号

全然、最新じゃないじゃん!と言われそうですが、保守的な開発現場の場合、5年ぐらい前の技術がスタンダードだったりしますんで1年半から2年遅れぐらいの技術が個人的にはちょうどいいと思っています(笑)

最新技術は大切だと思いますが、意味もなく次々に新しい技術を摂取するのも問題だと思っています。

-PHP

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

Cakeの共通処理

CakePHPだけに限りませんが、フレームワークの場合、オブジェクト指向の特徴を理解して、全ページに共通な処理などは個々のコントローラーに書くのではなく、もっと抽象度の高いクラスに書いたほうが保守性が …

no image

cakePHPでの多対多について

cakePHPで多対多のリレーションを使う機会があったので、その時のメモなどを。 多対多を説明するときには例によってブログの投稿(Item)とタグ(Tag)の関係が一番わかりやすいですね。 Conte …

no image

guzzle

サイトへのログイン認証などHTTPアクセスを行うライブラリではHTTP2_requestが有名かと思いますが、すでに開発がとまっていることもあり、最近はguzzleというライブラリが使われているようで …

no image

PHPのPDF出力に関するエラー

PHPからFPDFなどを使ってPDFを出力するプログラムを書いたんですが、下記のエラーでかなり悩まされました。

読んで字のごとくPDF …

no image

mb_convert_encodingに関して(文字コードの自動検出やその周辺)

以前Perlでもやりましたが、文字コードの自動検出に関して。 ちなみにcp932=SJIS-WINです。 参考リンク Perlでの動的改行コード読み込みに関して+cp932ネタ PHPの場合、mb_d …

アーカイブ