skillup

技術ブログ

PHP

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

投稿日:

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

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

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

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

プログラミング環境

PHPBrew

使ったことないっす。

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

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

http://qiita.com/Hiraku/items/61eeec22f78e9a6217ee
http://rubellum.hatenablog.com/entry/2014/01/11/223356

ビルトインサーバー

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

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

http://www.granfairs.com/blog/cto/php-builtin-server
https://codeiq.jp/magazine/2014/04/7964/

デバッガ Xdebug

これを使うことで

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

http://keicode.com/cgi/stacktrace-enhancement-with-xdebug.php
http://www.plusmb.jp/2009/06/26/3923.html

ユニットテスト PHPUnit

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

http://naoberry.com/tech/phpunit-init/

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

PEAR

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

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

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

Composer

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

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

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

https://soarcode.jp/posts/173
http://qiita.com/notona/items/c5a087d8dd446d315e6e

参考資料

WEB+DB 2014年5月号

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

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

-PHP

執筆者:


comment

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

関連記事

no image

cakePHPでの直SQL

今回はCakePHPにて直のSQLを書く方法を。 cakePHPにて大概の処理はもともと備わっているコマンドでなんとかなりますが、まれに直SQLを書いたほうがらくなこともあります。 書き方その1 [c …

no image

PHPでのデバッグ

基本的なことですが、PHPのdebugについておさらいを。 Contents1 一般的なデバッグツール1.1 var_dump1.2 xdebug1.3 フレームワークのdebugツール1.4 dd1 …

no image

dateTimeの使い方

phpの日付ライブラリであるdateTimeについて。 Contents1 過去のリンク2 頻出表現3 リンク 過去のリンク CakePHP3 日付ライブラリ(Time)について http://ski …

no image

composer global require

composerでのglobal requireに関して。 composerでライブラリを読み込むとき、一般的には下記のどちらかで読み込むことが多いです。 composer.jsonに記述 compo …

no image

ロケール情報について

本日、csvファイルを読み込む処理を行っていたんですが、コンソールからコマンドを打つと化けずに、ウェブ上で見ると化けるという現象が発生。 csv,プログラムともに文字コードがutf8で統一していること …