[php]消えたphp_check_syntax()関数
先日紹介した、PHP4→PHP5移行ガイド いまこそPHP資産をマイグレーションをパラパラめくっていたら、ふと目にとまった関数がありました。
bool php_check_syntax ( string $filename [, string &$error_message ] )
ぉぉ?こんな関数追加されたのかって思って、でもよくみたら、
PHP5で追加された関数ですが、PHP5.1以降削除されました。
-PHP4→PHP5移行ガイド いまこそPHP資産をマイグレーション-
廃止はぇぇw
PHPマニュアルでphp_check_syntax()関数を調べると、PHP5.0で追加されてPHP5.0.5で廃止されたようですね。動作としては、実際にファイルを実行して文法チェックを行うというものらしいですが、技術的な理由により廃止されてしまったみたいです。
じゃぁ、どうやって文法チェックをするの?っていうと、phpのコマンドラインオプションの-lを使うみたいです。コマンドの実行例はphp_check_syntax()関数のマニュアル内にあります。また、マニュアル下部のNotesのところにはexec()関数でphpをコマンドラインから呼び出すような関数が投稿されてます。注意書きで「1. UNIX系OSであること」「2. phpの実行パスが環境変数に通っていない場合は、自分でパスを通す必要があること」が書いてありますが、問題ないですよね。試していませんが使えそうな雰囲気です。
一度取り込まれた関数って、PECLに移動とかは考えられますが、廃止ってなかなかないですよね。よほど技術的に乗り越えられない壁があったんでしょうか。
■追伸
ググったらシェルスクリプトで”php -l”を実行するphp_check_syntax.shを公開している方がいました。こちらもいいですね。