Описание функции copy_dir()
Функция copy_dir() копирует содержимое одной директории в другую. Эта функция используется для создания резервных копий, перемещения файлов и при разработке тем и плагинов, где требуется манипуляция с файлами и директориями.
Функция может обрабатывать вложенные директории и поддерживает разные сценарии копирования, включая проверки на наличие ошибок.
Параметры
$src
Тип: string
Обязательный: Да
Описание: Путь к исходной директории для копирования
Возможные значения:
$dest
Тип: string
Обязательный: Да
Описание: Путь к целевой директории, куда будет копироваться содержимое
Возможные значения:
$overwrite
Тип: bool
Обязательный: Нет
По умолчанию: false
Описание: Флаг, указывающий, следует ли перезаписывать существующие файлы
Возможные значения:
0: 1
1:
Возвращаемое значение
Тип: bool
Описание: Возвращает true при успешном копировании, иначе false
Возможные значения:
• true — если копирование прошло успешно
• false — если возникла ошибка в процессе копирования
Примеры использования
Простой пример копирования директории без перезаписи
$result = copy_dir('/path/to/source', '/path/to/destination');
// Проверка результата
if ($result) {
echo 'Копирование завершено успешно';
} else {
echo 'Ошибка при копировании';
}
Копирует содержимое директории, если целевая директория не существует
Копирование директории с возможностью перезаписи существующих файлов
$result = copy_dir('/path/to/source', '/path/to/destination', true);
Файлы в целевой директории будут заменены
Пример обработки ошибок, когда путь к исходной директории неверен
$result = copy_dir('/invalid/source', '/path/to/destination');
if ($result === false) {
error_log('Ошибка копирования: неверный путь к исходной директории');
}
Ошибка записывается в лог
Копирование файлов темы в директорию дочерней темы
$this->copy_theme_files();
function copy_theme_files() {
copy_dir(get_template_directory(), get_stylesheet_directory());
}
Полезно при разработке дочерних тем
Безопасность
Валидация входных данных: Функция проверяет, что указанные пути существуют и корректны
Санитизация: Пути к директориям должны быть валидированы
Рекомендации: Используйте встроенные функции для проверки и очистки путей перед передачей в copy_dir()
— Связанные функции
Копирует файл из одного места в другое
Удаляет директорию и все ее содержимое
— Примечания
– Ограничения
Не поддерживает копирование системных директорий без соответствующих прав
– Частые проблемы
- Ошибка при неверном пути к исходной директории
- Недостаточно прав для записи в целевую директорию