Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
640 of 1361 menu
◀ ▶

Метод 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,
    который удаляет файл или директорию
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить