brzuchal / filesystem-stream-wrapper
简单的PHP本地文件系统包装器
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-09-07 02:51:07 UTC
README
简单的PHP本地文件系统流包装器
安装
使用Composer
composer require brzuchal/filesystem-stream-wrapper
用法
FilesystemStreamWrapper::register('app', __DIR__ . '/myapp_direcotry') touch('app://file.txt'); file_put_contents('app://file.txt', "comment\n"); echo file_get_contents('app://file.txt'); // "comment\n" unlink('app://file.txt'); mkdir('app://directory'); rename('app://directory', 'app://dir'); rmdir('app://dir'); FilesystemStreamWrapper::unregister('app');
已知问题
PHP不支持某些函数(如chdir()
、link()
、symlink()
、readlink()
、linkinfo()
、tempnam()
和realpath()
)中的StreamWrapper。虽然其中大多数很少使用,但realpath()
广泛使用。解决此问题的唯一方法是使用Filesystem::realpath()
方法或在适合realpath()
使用的命名空间中声明包装的函数,这会导致PHP在当前命名空间中查找声明的函数。
例如,使用来自Doctrine2的Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand
,您需要声明如下函数
namespace Doctrine\ORM\Tools\Console\Command; function realpath() { return call_user_func_array("FilesystemStreamWrapper::realpath", func_get_args()); }
许可证
MIT许可证
版权所有(c)2017 Michał Brzuchalski michal.brzuchalski@gmail.com
特此授予任何获得此软件及其相关文档文件(“软件”)副本的任何人,免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件提供方为此目的使用软件,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任(无论因合同、侵权或其他原因引起)承担责任,这些索赔、损害或其他责任源于、产生于或与软件或其使用或其他交易有关。