Метод touch
Метод touch класса Filesystem создаёт файл по указанному пути, если такого файла ещё нет. Если файл уже существует, метод обновляет время его последнего изменения (mtime) и время последнего доступа (atime). Первым параметром передаётся путь к файлу, вторым - необязательное время изменения в формате Unix timestamp. Если файл успешно создан или обновлён, метод возвращает true, иначе выбрасывает исключение IOException.
Синтаксис
public function touch(string $filename, ?int $time = null, ?int $atime = null): bool
Пример
Давайте создадим новый файл 'article.txt' в директории 'var/':
<?php
namespace AppService;
use SymfonyComponentFilesystemFilesystem;
use SymfonyComponentFilesystemExceptionIOException;
class FileService
{
public function createFile(): bool
{
$fs = new Filesystem();
$res = $fs->touch('var/article.txt');
return $res;
}
}
?>
Результат выполнения кода:
true
Пример
Давайте проверим, что файл действительно создан, с помощью метода exists:
<?php
namespace AppService;
use SymfonyComponentFilesystemFilesystem;
class FileService
{
public function checkFile(): bool
{
$fs = new Filesystem();
$fs->touch('var/article.txt');
return $fs->exists('var/article.txt');
}
}
?>
Результат выполнения кода:
true
Пример
Давайте обновим время изменения существующего файла, передав вторым параметром конкретный timestamp:
<?php
namespace AppService;
use SymfonyComponentFilesystemFilesystem;
class FileService
{
public function updateTime(): bool
{
$fs = new Filesystem();
$time = strtotime('2024-01-01 00:00:00');
return $fs->touch('var/article.txt', $time);
}
}
?>
Результат выполнения кода:
true
Пример
Давайте обработаем ситуацию, когда файл невозможно создать, поймав исключение IOException:
<?php
namespace AppService;
use SymfonyComponentFilesystemFilesystem;
use SymfonyComponentFilesystemExceptionIOException;
class FileService
{
public function safeTouch(): string
{
$fs = new Filesystem();
try {
$fs->touch('var/article.txt');
return 'file created';
} catch (IOException $e) {
return 'error: ' . $e->getMessage();
}
}
}
?>
Результат выполнения кода:
"file created"
Смотрите также
-
класс
Filesystem,
который предоставляет методы для работы с файлами и директориями -
метод
exists,
который проверяет существование файла или директории -
метод
dumpFile,
который записывает содержимое в файл -
метод
remove,
который удаляет файл или директорию