【PHP】メインファイルの実行前後に自動的に実行してくれる「auto_prepend_file」「auto_append_file」

メインファイル実行前後に自動的に実行してくれる「auto_prepend_file」「auto_append_file」のメモ


auto_prepend_file

auto-prepend-file

メインファイルの実行前に呼び出されるファイルを設定します。

php.ini、.httaccessに設定すれば使用することが可能です。

php.ini
1
auto_prepend_file /path/to/prepend.php
.httaccess
1
php_value auto_prepend_file /path/to/prepend.php

サンプルとして以下のようなファイルを設定しておくと「pre_dump」という関数を作って置くことが出来ます。

prepend.php
1
2
3
4
5
6
7
8
9
10
<?php
if (!function_exists('pre_dump')) {
    function pre_dump() {
        echo "<pre>";
        for ($i = 0; $i < func_num_args(); $i++){
            var_dump(func_get_arg($i));
        }
        echo "</pre>";
    }
}

auto_append_file

auto_append_file

メインファイルの実行後に呼び出されるファイルを設定します。

php.ini、.httaccessに設定すれば使用することが可能です。

php.ini
1
auto_append_file /path/to/append.php
.httaccess
1
php_value auto_append_file /path/to/append.php

※スクリプトが exit() で終了する場合、 この機能は動作しません。


append.php
1
2
3
4
5
6
7
8
<?php
$error = error_get_last();
if(!is_null($error)){
    file_put_contents(
        '/log/'.date('Y/m/d H:i:s'),
        date('Y/m/d H:i:s').PHP_EOL.var_export($error, true),
        FILE_APPEND | LOCK_EX);
}

まとめ

今のフレームワークなどでは使う場面などは少ないでしょうが、古いPHPの解析や改造には有用な設定です。


0 件のコメント :

コメントを投稿