flavioheleno / interim
tmpfile()和sys_get_temp_dir()的open_basedir意识包装器
v0.1.0
2023-03-27 18:38 UTC
Requires
- php: ^8.2
Requires (Dev)
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: ^3.7
README
Interim是一个简单的包装器,围绕PHP的tmpfile()
和sys_get_temp_dir()
,考虑到了open basedir限制。
安装
要使用Interim,只需运行
composer require flavioheleno/interim
用法
当open_basedir
被禁用时,Interim的行为与sys_get_temp_dir()
完全相同
// before var_dump(sys_get_temp_dir()); // string(4) "/tmp" // after var_dump(Interim\Temporary::getDirectory()); // string(4) "/tmp" // -or- var_dump(Interim\Temporary::getDirectory('tmp')); // string(4) "/tmp" // -or- var_dump(Interim\Temporary::getDirectory('/var/tmp')); // string(4) "/tmp"
当open_basedir
被启用时,Interim将检查临时目录是否在open_basedir列表中,如果不是,它将返回一个替代项。
ini_set('open_basedir', '/var/www/html:/var/tmp'); // before (if you try to use "/tmp", an "open_basedir restriction in effect" warning will be raised) var_dump(sys_get_temp_dir()); // string(4) "/tmp" // after var_dump(Interim\Temporary::getDirectory()); // string(4) "/var/www/html" // -or- var_dump(Interim\Temporary::getDirectory('tmp')); // string(4) "/var/www/html/tmp" // -or- var_dump(Interim\Temporary::getDirectory('/var/tmp')); // string(4) "/var/tmp"
许可证
此库根据MIT许可证授权。