gidato / temporary-path

在给定的临时目录基础上创建一个新的临时路径对象

v0.1.2 2020-05-15 10:53 UTC

This package is auto-updated.

Last update: 2024-09-15 20:56:11 UTC


README

创建新的临时文件或目录 Gidato/Filesystem/Model 对象。

如果目录/文件被创建,则在对象通过析构方法销毁时会自动消失。

这也可以通过 drop() 方法手动调用。

为此,每种文件类型都必须映射到等效的临时文件类型。BasicFile 和 JsonFile 已设置,但可以添加到 FileClassMapper - 请参阅以下示例。

安装


composer require gidato/temporary-path

示例使用

<?php

use Gidato\TemporaryPath\Temporary;
use Gidato\Filesystem\Model\Base;

$base = new Base('/filesbase');
$temporary =  new Temporary($base->directory('tmp'));

// creates a TemporaryDirectory
$directory = $temporary->directory();
$directory->create();
$directory->drop();

// creates a TemporaryBasicFile
$file = $temporary->file();

// creates a TemporaryJsonFile
$file = $temporary->file('json');

// new file types - ConfigJsonFile extends JsonFile
$base->getFileTypesHandler()->addType('config.json', ConfigJsonFile::class);

// creates a TemporaryJsonFile as mapper not set up to convert ConfigJsonFile to anything else
$file = $temporary->file('config.json');

// now set up a mapper for ConfigJsonFile
$temporary->getFileClassMapper()->addType(ConfigJsonFile::class, TemporaryConfigJsonFile::class);

// now creates a TemporaryConfigJsonFile
$file = $temporary->file('config.json');

您还可以跟踪任何创建,以便所有内容都可以同时删除。这主要是为了捕捉对象在出现错误/异常时未进行销毁的问题。

<?php

$code = $temporary->track();

$file = $temporary->file();
$file->create();

$$directory = $temporary->directory();
$directory->create();

// drop all temporary files and directories since code was created
$temporary->dropSice($code);