HTML Diff
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