Решил проблему так: Есть модуль основной и его мы будем клонировать, собрал из просторов интернета код для этих целей:
public function actionCopy(
$basePath = '/OSPanel/domains/КаталогДомена/company/modules/',
$source = 'Компания 1',
$dest = 'Компания 2',
$overwrite = true,
$sourcestr = 'Компания 1',
$deststr = 'Компания 2'
)
{
//Давайте просто убедимся, что наша новая папка уже создана.
if (!is_dir($basePath . $dest))
mkdir($basePath . $dest);
if ($handle = opendir($basePath . $source)) {
while (false !== ($file = readdir($handle))) {
if ($file != '.' && $file != '..') {
$path = $source . '/' . $file;
$pathNew = $basePath . $dest . '/' . $file;
if (is_file($basePath . $path)) {
if (!is_file($basePath . $dest . '/' . $file) || $overwrite) {
if (!@copy($basePath . $path, $basePath . $dest . '/' . $file)) {
echo '<font color="red">File (' . $path . ') could not be copied, likely a permissions problem.</font>';
}
$this->strFile($sourcestr, $deststr, $pathNew);
}
} elseif (is_dir($basePath . $path)) {
if (!is_dir($basePath . $dest . '/' . $file))
mkdir($basePath . $dest . '/' . $file); // создать подкаталог перед копированием подкаталога
$this->actionCopy($basePath, $path, $dest . '/' . $file, $overwrite, $sourcestr, $deststr); //рекурсия!
}
}
}
closedir($handle);
}
}
public function strFile($oldstr, $newstr, $yourfile)
{
$file = file($yourfile);
echo 'Открыли файл ' . $yourfile.' ';
if (is_array($file)) {
foreach ($file as $key => $value) {
$file[$key] = preg_replace('/'.$oldstr.'/', $newstr, $value);
}
} else {
exit ("Ошибка");
}
$fp = fopen($yourfile, "w+"); // перезаписываем независимо от длины новой строки
fwrite($fp, implode("", $file));
fclose($fp);
}
Копируется Компания 1 в Компания 2 и файл который копируется проверяется на Компания 1 и Заменяет на Компания 2
1. Если у кого есть код что бы копировать базу данных
2. Подключение модуля в файл (не вручную)
Буду рад за код))