spatie / temporary-directory
轻松创建、使用和销毁临时目录
Requires
- php: ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-08-29 13:24:53 UTC
README
此包允许您快速在系统临时目录中创建、使用和删除临时目录。
以下是一个快速示例,展示如何创建临时目录并删除它
use Spatie\TemporaryDirectory\TemporaryDirectory; $temporaryDirectory = (new TemporaryDirectory())->create(); // Get a path inside the temporary directory $temporaryDirectory->path('temporaryfile.txt'); // Delete the temporary directory and all the files inside it $temporaryDirectory->delete();
支持我们
我们投入了大量资源来创建一流的开源软件包。您可以通过购买我们的付费产品之一来支持我们。
我们非常感谢您从您的家乡寄给我们明信片,说明您正在使用我们哪个包。您可以在我们的联系页面上找到我们的地址。我们将发布所有收到的明信片在我们的虚拟明信片墙上。
安装
您可以通过composer安装此包
composer require spatie/temporary-directory
用法
创建临时目录
要创建临时目录,只需在TemporaryDirectory
对象上调用create
方法。
(new TemporaryDirectory())->create();
或者,使用TemporaryDirectory
对象的静态make
方法。
TemporaryDirectory::make();
默认情况下,临时目录将创建在系统临时目录中的带时间戳的目录中(通常是/tmp
)。
为临时目录命名
如果您想使用自定义名称而不是时间戳作为临时目录的名称,请在调用create
方法之前,使用字符串$name
参数调用name
方法。
(new TemporaryDirectory()) ->name($name) ->create();
默认情况下,如果已存在具有给定参数的目录,则会抛出异常。您可以通过将force
方法和name
方法结合使用来覆盖此行为。
(new TemporaryDirectory()) ->name($name) ->force() ->create();
为临时目录设置自定义位置
您可以通过将字符串$location
参数传递给TemporaryDirectory
构造函数来设置临时目录将创建的自定义位置。
(new TemporaryDirectory($location)) ->create();
make
方法也接受一个$location
参数。
TemporaryDirectory::make($location);
最后,您可以使用$location
参数调用location
方法。
(new TemporaryDirectory()) ->location($location) ->create();
确定临时目录内的路径
您可以使用path
方法确定临时目录中文件或目录的完整路径。
$temporaryDirectory = (new TemporaryDirectory())->create(); $temporaryDirectory->path('dumps/datadump.dat'); // return /tmp/1485941876276/dumps/datadump.dat
清空临时目录
使用empty
方法删除临时目录中的所有文件。
$temporaryDirectory->empty();
删除临时目录
完成临时数据的处理后,您可以使用delete
方法删除整个临时目录。其中所有文件都将被删除。
$temporaryDirectory->delete();
当对象销毁时删除临时目录
如果您希望在对象实例在其定义的作用域内没有更多引用时自动删除文件系统目录,可以在TemporaryDirectory
对象上启用deleteWhenDestroyed()
。
function handleTemporaryFiles() { $temporaryDirectory = (new TemporaryDirectory()) ->deleteWhenDestroyed() ->create(); // ... use the temporary directory return; // no need to manually call $temporaryDirectory->delete()! } handleTemporaryFiles();
您也可以在对象实例上调用unset()
。
测试
composer test
变更日志
请参阅CHANGELOG,了解最近更改的详细信息。
贡献
请参阅CONTRIBUTING,获取详细信息。
安全漏洞
请查阅我们如何报告安全漏洞的安全策略(点击查看)。
Postcardware
您可自由使用此包,但如果它进入了您的生产环境,我们非常欢迎您从家乡寄给我们一张明信片,说明您正在使用我们的哪个包。
我们的地址是:Spatie,Kruikstraat 22,2018 安特卫普,比利时。
我们将所有收到的明信片发布在我们的公司网站上。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。