我有两个问题, 首先我有这个错误:致命错误:Class' ClicShopping \ Sites \ ClicShoppingAdmin \ RecursiveDirectoryIterator'找不到 我不确切知道为什么。
您是否需要使用命名空间以及如何编写函数?
use \RecursiveDirectoryIterator
我的第二个问题是:如何排除副本中的license或readme.txt等文件。
由于
class toto {
public static function smartCopy($source, $dest) {
@mkdir($dest, 0755);
foreach (
$iterator = new \RecursiveIteratorIterator(
new \RecursiveDirectoryIterator($source, \RecursiveDirectoryIterator::SKIP_DOTS),
\RecursiveIteratorIterator::SELF_FIRST
) as $item
) {
if ($item->isDir()) {
mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
} else {
if ($item != 'README.md' && $item != 'LICENSE') {
copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
}
}
}
}
}
和
public function getInstallModuleFixe($file) {
$zip_file = DIR_FS_CATALOG . 'plugin_download/' . $file .'.zip';
$archive = new \PclZip($zip_file);
$list = $archive->listContent();
if ($list == 0) {
die("Error : ".$archive->errorInfo(true));
}
$extract = $archive->extract(PCLZIP_OPT_EXTRACT_DIR_RESTRICTION, DIR_FS_CATALOG . 'plugin_download',
PCLZIP_OPT_PATH, DIR_FS_CATALOG . 'plugin_download'
);
if (is_dir(DIR_FS_CATALOG . 'plugin_download/'. $file.'-master')) {
static::smartCopy(DIR_FS_CATALOG . 'plugin_download/'. $file.'-master' , DIR_FS_CATALOG . 'plugin_download/test/');
} else {
echo 'no copy';
die();
}
}