Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Как использовать Symfony-компонент Filesystem

by
Difficulty:BeginnerLength:ShortLanguages:

Russian (Pусский) translation by Alexey Pyltsyn (you can also view the original English article)

В этой статье мы будем изучать компонент Filesystem от Symfony, который предоставляет полезные методы для взаимодействия с файловой системой. После установки и настройки мы на нескольких реалистичных примеров покажем, как его использовать.

Symfony-компонент Filesystem 

Очень часто вам нужно взаимодействовать с файловой системой, если вы работаете с PHP-приложениями. В большинстве случаев вы либо используете встроенные функции PHP или создаете собственный пользовательский класс-оболочку для достижения требуемой функциональности. Так или иначе, это трудно поддерживать в течение длительного периода времени. Так что вам нужна данная библиотека, которая хорошо поддерживается и простая в использовании. Вот где компонент Symfony Filesystem вступает в действие.

Symfony-компонент Filesystem предоставляет полезные методы-обертки, которые делают взаимодействие с файловой системой легким и приятным. Давайте перечислим, что может делать этот компонент:

  • создание директории
  • создание файла
  • редактирование содержимое файла
  • изменение владельца и группы файла или директории
  • создание символьной ссылки
  • копирование файла или директории
  • удаление файла или директории
  • и многое другое

В этой статье я покажу вам, как применять мощь компонента Symfony Filesystem. Как обычно мы начнем с инструкции по установке и конфигурации, а затем создадим несколько примеров, чтобы продемонстрировать ключевые концепции.

Установка и настройка

В этом разделе мы собираемся установить компонент Symfony Filesystem. Я предполагаю, что вы уже установили Composer в вашу систему, поскольку он нужен для того, чтобы установить компонент Filesystem, который доступен на Packagist.

Так, идем дальше и устанавливаем компонент Filesystem с помощью следующей команды.

Эта команда должна была создать файл composer.json со следующим содержимым:

Это была часть установки, но как вы предполагаете его использовать? Это вопрос включения файла autoload.php, созданный Composer в вашем приложении, как показано в следующем фрагменте кода.

Пример из реальной жизни

В этом разделе мы напишем пример, который демонстрирует, как можно использовать компонент Filesystem в приложениях для выполнения различных операций с файловой системой.

Для начала, давайте создадим файл index.php с приведенным ниже содержимым.

Здесь, мы создаем объект Filesystem в $fsObject и сохраняем текущий каталог в $current_dir_path. В следующих разделах мы будем использовать $fsObject для выполнения различных операций.

Создание новой директории

Во-первых мы создадим новую директорию.

Мы использовали метод exists для проверки, существует ли уже директория foo, перед тем как создать ее.

Далее мы использовали метод mkdir для создания директории foo с правами 0775, что означает, что директория доступна для чтения и выполнения всеми пользователями, но для записи только владельцем файла и его группой. (Это восьмеричная нотация для установки прав файловой системы, чтобы узнать больше про это, посмотрите на эту структуру восьмеричной нотации.) Кроме того мы использовали методы chown и chgrp для смены владельца и группы директории foo.

Создание нового файла и добавление содержимого

В этом разделе мы создадим новый файл и добавим содержимое в этот файл.

Мы использовали метод touch для создания нового файла. а затем использовали chmod для установки его прав на значение 0777 — чтение, запись и выполнение для всех пользователей.

После того, как файл будет создан, можно использовать метод dumpFile для добавления содержимого в этот файл. С другой стороны, если вы хотите добавить содержимое в уже существующий файл, можно использовать метод appendToFile, как показано в приведенном выше примере.

Копирование директории

Пока мы создали директорию foo и файл bar.txt файл с помощью объекта $fsObject. В этом разделе мы увидим, как копировать каталог вместе с его содержимым.

Как вы можете видеть, сначала мы сформировали имена путей с объединением строк. Затем, после того, как мы убедились, что директория еще не создана с помощью метода exists, мы использовали метод mirror для копирования директории foo в директорию foo_copy.

Удаление директории

Наконец, давайте посмотрим, как удалить директорию.

Опять же, это довольно просто — для удаления каталога вам нужен только метод remove.

Вы можете найти готовый код в index.php в нашем репозитории на GitHub.

Заключение

Это было краткое введение в компонент Filesystem, разработанный Symfony. Symfony-компонент Filesystem предоставляет методы, делающие взаимодействие с файловой системой легким и простым. Мы посмотрели, как установить компонент, и создали несколько примеров для демонстрации различных аспектов применения компонента.

Я надеюсь, что вам понравилась эта статья, и не стесняйтесь поделиться своими мысли по поводу нее.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.