spatie/temporary-directory

轻松创建、使用和销毁临时目录

2.2.1 2023-12-25 11:46 UTC

README

Latest Version on Packagist Tests Software License Total Downloads

此包允许您快速在系统临时目录中创建、使用和删除临时目录。

以下是一个快速示例,展示如何创建临时目录并删除它

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)。请参阅许可证文件以获取更多信息。