p0t: 地味コード

PHP::Compatを使わぬとは! PEARへの愛が足りぬ!

投稿者 halt : 2006年02月07日 14:52

haltさんの叱咤によりPEAR愛が高まったというかPHP::Compatに俄然興味が出たので調べてみました。

PHP::Compatのcompatはcompatibility(互換性)の略で、後のバージョンで新しく出来た関数や定数をヘボイバージョンにも提供してくれる素晴らしいライブラリだそうです。 特に前述のPATH_SEPARATOR(: or ;)やDIRECTORY_SEPARATOR(/ or \)やPHP_EOL(\n or \r\n or \r)などの無いと激しく萎える存在を提供してくれるのでありがたい。関数も単体でloadできるのでシンプルで良い。 アプリに手を入れずに古いPHPで動かしたい場合にiniのauto_prepend_fileディレクティブにこれらの読み込みファイルを設定してみるっつーのも試してみる価値ありそう!

ついでに気になったPHP_CompatInfoも調べてみました。

PEAR :: Package :: PHP_CompatInfo

>> Description PHP_CompatInfo will parse a file/folder/script/array to find out the minimum version and extensions required for it to run. Features advanced debug output which shows which functions require which version and CLI output script

こっちはPHPのコードを調べてバージョンいくつ以上で動くのか調べてくれるらしい。試しにmojavi-all-classes.phpを調べてみました。

fakemac:~/src/mojavi-2.0.0% cat ~/project/php-examples/compat/compatinfo.php
#!/usr/bin/env php
<?php
require_once("PHP/CompatInfo/Cli.php");
$ci = new PHP_CompatInfo_Cli();
$ci->run();
?>
fakemac:~/src/mojavi-2.0.0% ~/project/php-examples/compat/compatinfo.php --file=mojavi-all-classes.php
+------------------------+---------+------------+------------------+
| File                   | Version | Extensions | Constants/Tokens |
+------------------------+---------+------------+------------------+
| mojavi-all-classes.php | 5.0.0   | session    | implements       |
|                        |         |            | interface        |
|                        |         |            | protected        |
|                        |         |            | private          |
|                        |         |            | __LINE__         |
|                        |         |            | final            |
|                        |         |            | clone            |
|                        |         |            | throw            |
|                        |         |            | catch            |
|                        |         |            | abstract         |
+------------------------+---------+------------+------------------+

5.0.0?んなこたぁないハズ。おれの理解が間違ってるのかも!

Comments


Option