christeredvartsen/testfs
最新稳定版本:v0.6.0
Composer 安装命令:
composer require --dev christeredvartsen/testfs
包简介
Virtual filesystem that can be used for testing
README 文档
README
Virtual filesystem for PHP for use with testing, implemented using a stream wrapper.
Requirements
This library requires PHP >= 8.3.
Installation
Install using Composer:
composer require --dev christeredvartsen/testfs
Usage
Enable the stream wrapper
The stream wrapper is enabled once you register it:
require 'vendor/autoload.php'; use TestFs\StreamWrapper; StreamWrapper::register();
When it is registered it will pick up usage of the tfs:// protocol used with filesystem functions, for instance fopen(), file_get_contents() and mkdir().
Mirror a local directory into the virtual filesystem
If you want to mirror a local directory into the virtual filesystem you can do this:
require 'vendor/autoload.php'; use TestFs\StreamWrapper; StreamWrapper::register(); $device = StreamWrapper::getDevice(); $device->buildFromDirectory('./src'); echo $device->tree() . PHP_EOL;
If the above code would be executed from a PHP file in the root of this project you would get something like this:
/
├── Asset.php
├── Device.php
├── Directory.php
├── Exception
│ ├── DuplicateAssetException.php
│ ├── DuplicateGroupException.php
│ ├── DuplicateUserException.php
│ ├── InsufficientStorageException.php
│ ├── InvalidAssetNameException.php
│ ├── InvalidFopenModeException.php
│ ├── InvalidUrlException.php
│ ├── InvalidWhenceException.php
│ ├── ProtocolAlreadyRegisteredException.php
│ ├── RuntimeException.php
│ ├── UnknownAssetException.php
│ ├── UnknownGroupException.php
│ └── UnknownUserException.php
├── File.php
├── FopenMode.php
├── RootDirectory.php
├── StreamWrapper.php
└── functions.php
1 directory, 21 files
Converting paths to URLs
To convert regular file paths to URLs that will be picked up by TestFs you can use the TestFs::url(string $path) function:
<?php require 'vendor/autoload.php'; use function TestFs\url; echo url('path/to/file.php'); // tfs://path/to/file.php
Wrappers for regular filesystem functions
The library contains simple wrappers around some of the filesystem functions in PHP that automatically prefixes paths with the correct protocol:
<?php require 'vendor/autoload.php'; use TestFs\StreamWrapper; use function TestFs\file_get_contents; use function TestFs\file_put_contents; use function TestFs\mkdir; StreamWrapper::register(); mkdir('foo/bar', 0777, true); file_put_contents('foo/bar/baz.txt', 'Hello World!'); echo file_get_contents('foo/bar/baz.txt'); // Hello World!
Refer to src/functions.php for the complete list of wrapped functions.
Development
git clone git@github.com:christeredvartsen/testfs.git
composer install
composer run ci
License
MIT, see LICENSE.
统计信息
- 总下载量: 2.69k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-01-22