0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Библиотека, которая используется для построения деревьев, рассчитана только на неизменяемые файловые структуры. То есть уже после создания ее поменять нельзя. Но можно на основе старой структуры сделать новую, в которой какие-то части будут изменены.</p>
1
<p>Библиотека, которая используется для построения деревьев, рассчитана только на неизменяемые файловые структуры. То есть уже после создания ее поменять нельзя. Но можно на основе старой структуры сделать новую, в которой какие-то части будут изменены.</p>
2
<p>Неизменяемая структура выбрана для этого курса не случайно. Такую структуру легче отлаживать и меньше шансов допустить ошибки. И она позволяет максимально погрузиться в использование функций высшего порядка.</p>
2
<p>Неизменяемая структура выбрана для этого курса не случайно. Такую структуру легче отлаживать и меньше шансов допустить ошибки. И она позволяет максимально погрузиться в использование функций высшего порядка.</p>
3
<h2>Базовые операции с узлами</h2>
3
<h2>Базовые операции с узлами</h2>
4
<p>Пакет<em>php-immutable-fs-trees</em>позволяет не только создавать, но и извлекать данные из уже созданных файлов и директорий. Функции этой библиотеки позволяют не лезть во внутреннюю структуру самого дерева:</p>
4
<p>Пакет<em>php-immutable-fs-trees</em>позволяет не только создавать, но и извлекать данные из уже созданных файлов и директорий. Функции этой библиотеки позволяют не лезть во внутреннюю структуру самого дерева:</p>
5
<p>Дополнительно в пакете есть две функции для проверки типа. С их помощью можно выборочно работать с файлами и директориями:</p>
5
<p>Дополнительно в пакете есть две функции для проверки типа. С их помощью можно выборочно работать с файлами и директориями:</p>
6
<p>Рассмотренных операций хватит для выполнения любых преобразований над файлами и директориями. Начнем с самых простых, которые не требуют рекурсивного обхода.</p>
6
<p>Рассмотренных операций хватит для выполнения любых преобразований над файлами и директориями. Начнем с самых простых, которые не требуют рекурсивного обхода.</p>
7
<h2>Обработка</h2>
7
<h2>Обработка</h2>
8
<p>Любая обработка в неизменяемом стиле сводится к формированию новых данных на основе старых. Ниже мы реализуем некоторые варианты преобразования, раскрывающие эту идею.</p>
8
<p>Любая обработка в неизменяемом стиле сводится к формированию новых данных на основе старых. Ниже мы реализуем некоторые варианты преобразования, раскрывающие эту идею.</p>
9
<h3>Изменение имени файла</h3>
9
<h3>Изменение имени файла</h3>
10
<p>Фактически здесь создается новый файл с метаданными старого.</p>
10
<p>Фактически здесь создается новый файл с метаданными старого.</p>
11
<h3>Сортировка содержимого директории</h3>
11
<h3>Сортировка содержимого директории</h3>
12
<h3>Обновление содержимого директории</h3>
12
<h3>Обновление содержимого директории</h3>
13
<h3>Удаление файлов внутри директории</h3>
13
<h3>Удаление файлов внутри директории</h3>
14
14