Я вижу, что нет встроенного способа копирования директорий в PHP. Я видел Скопируйте все содержимое одного каталога в другой, используя php но я не смог найти никаких проблем с system('cp -R src dest')
,
Есть ли проблема с использованием выше system
вызов? Я предполагаю, что единственная «проблема» — это создание одного дополнительного процесса за долю секунды. Правильно?
Я поясню, что в этом сценарии я не разрабатываю готовый продукт, который должен быть независимым от платформы, ни src
или же dest
исходят от пользовательского ввода, они на 100% чисты. Единственная проблема, которую я вижу (как было указано ниже) — это обработка ошибок.
Редактировать:
При условии src & dest являются чистыми, и кросс-платформенная совместимость не будет проблемой, тогда единственной проблемой, которая все еще остается, является обработка ошибок — PHP копия () будет явно возвращать false в случае сбоя (например, неправильные разрешения файловой системы) и может быть превращен в пользовательскую рекурсивную функцию.
Mayble Laravel FileSystem поможет вам — она широко используется и должна быть хорошо протестирована: https://github.com/laravel/framework/blob/master/src/Illuminate/Filesystem/Filesystem.php
Чтобы узнать, как получить stderr для команд оболочки, смотрите: https://stackoverflow.com/a/2320835/294696
Других решений пока нет …