РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
649 of 1361 menu

Метод tempnam

Метод tempnam класса Filesystem создаёт временный файл с уникальным именем. Первым параметром передаётся директория, в которой нужно создать файл. Вторым параметром передаётся префикс имени файла. Метод возвращает полный путь к созданному файлу. Если директория не существует или недоступна для записи, метод выбрасывает исключение IOException.

В отличие от встроенной функции PHP tempnam, метод класса Filesystem проверяет, что директория действительно существует, и выбрасывает понятное исключение при ошибке. Это упрощает отладку и делает код более предсказуемым.

Синтаксис

public function tempnam(string $dir, string $prefix): string

Пример

Давайте создадим временный файл в директории '/tmp' с префиксом 'abcde':

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFilesystemFilesystem; use SymfonyComponentFilesystemExceptionIOException; class ArticleController extends AbstractController { public function index(): Response { $fs = new Filesystem(); try { $path = $fs->tempnam('/tmp', 'abcde'); echo $path; } catch (IOException $e) { echo $e->getMessage(); } return new Response(); } } ?>

Результат выполнения кода:

"/tmp/abcde1a2b3c"

Пример

Давайте создадим временный файл в директории проекта 'var/tmp' и запишем в него данные:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFilesystemFilesystem; use SymfonyComponentFilesystemExceptionIOException; class ArticleController extends AbstractController { public function index(): Response { $fs = new Filesystem(); try { $path = $fs->tempnam('var/tmp', 'user'); $fs->dumpFile($path, 'hello'); echo $fs->readFile($path); } catch (IOException $e) { echo $e->getMessage(); } return new Response(); } } ?>

Результат выполнения кода:

"hello"

Пример

Давайте обработаем ситуацию, когда указанная директория не существует:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFilesystemFilesystem; use SymfonyComponentFilesystemExceptionIOException; class ArticleController extends AbstractController { public function index(): Response { $fs = new Filesystem(); try { $path = $fs->tempnam('/nonexistent/path', 'article'); echo $path; } catch (IOException $e) { echo $e->getMessage(); } return new Response(); } } ?>

Результат выполнения кода:

"Unable to create a temporary file in "/nonexistent/path"."

Смотрите также

  • класс Filesystem,
    который предоставляет методы для работы с файловой системой
  • метод dumpFile,
    который записывает данные в файл
  • метод readFile,
    который читает содержимое файла
  • метод remove,
    который удаляет файлы и директории
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить