本文整理汇总了PHP中SC_Utils_Ex::copyDirectory方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Utils_Ex::copyDirectory方法的具体用法?PHP SC_Utils_Ex::copyDirectory怎么用?PHP SC_Utils_Ex::copyDirectory使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_Utils_Ex
的用法示例。
在下文中一共展示了SC_Utils_Ex::copyDirectory方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: update
function update(array $arrPlugin, SC_Plugin_Installer $installer)
{
$plugin_code = $arrPlugin["plugin_code"];
GC_Utils_Ex::gfPrintLog("[{$plugin_code}]更新処理を実行します。", PLUGIN_LOG_REALFILE, FALSE);
SC_Utils_Ex::copyDirectory(dirname(__FILE__) . "/", PLUGIN_UPLOAD_REALDIR . $plugin_code . "/");
require_once dirname(__FILE__) . '/AutoDisplayCore.php';
$core = new AutoDisplayCore($arrPlugin);
$core->install($arrPlugin, $installer);
GC_Utils_Ex::gfPrintLog("[{$plugin_code}]更新処理を実行完了しました。", PLUGIN_LOG_REALFILE, FALSE);
}
示例2: install
/**
* @param array $arrPlugin
* @param SC_Plugin_Installer $objPluginInstaller
* @see SC_Plugin_Base::install()
*/
function install($arrPlugin, $objPluginInstaller = null)
{
// logo コピー
$objPluginInstaller->copyDirectory("copy/plugin_dir/", "");
SC_Utils_Ex::copyDirectory(KTC_COPY_MOD_DIR, DATA_REALDIR . "module/");
SC_Utils_Ex::copyDirectory(KTC_COPY_CLASS_DIR, CLASS_REALDIR);
SC_Utils_Ex::copyDirectory(KTC_COPY_CLASS_EX_DIR, CLASS_EX_REALDIR);
SC_Utils_Ex::copyDirectory(KTC_COPY_HTML_DIR . "user_data/", HTML_REALDIR . USER_DIR);
SC_Utils_Ex::copyDirectory(KTC_COPY_HTML_DIR . "au/", HTML_REALDIR . "au/");
SC_Utils_Ex::copyDirectory(KTC_COPY_HTML_DIR . "products/", HTML_REALDIR . "products/");
SC_Utils_Ex::copyDirectory(KTC_COPY_HTML_DIR . "frontparts/bloc", HTML_REALDIR . BLOC_DIR);
SC_Utils_Ex::copyDirectory(KTC_COPY_HTML_DIR . "admin/", HTML_REALDIR . ADMIN_DIR);
SC_Utils_Ex::copyDirectory(KTC_COPY_TMPL_DIR . "admin/", TEMPLATE_ADMIN_REALDIR);
SC_Utils_Ex::copyDirectory(KTC_COPY_TMPL_DIR . "sphone/", SMARTPHONE_TEMPLATE_REALDIR);
$this->initDB($arrPlugin, $objPluginInstaller);
$this->updateTemplate($arrPlugin, $objPluginInstaller);
$this->createCash();
}
示例3: copyDirectory
/**
* 指定されたパスの配下を再帰的にコピーします.
* @param string $source_path コピー元ディレクトリのパス
* @param string $dest_path コピー先ディレクトリのパス
* @return void
*/
public static function copyDirectory($source_path, $dest_path)
{
$handle = opendir($source_path);
while ($filename = readdir($handle)) {
if ($filename === '.' || $filename === '..') {
continue;
}
$cur_path = $source_path . $filename;
$dest_file_path = $dest_path . $filename;
if (is_dir($cur_path)) {
// ディレクトリの場合
// コピー先に無いディレクトリの場合、ディレクトリ作成.
if (!empty($filename) && !file_exists($dest_file_path)) {
mkdir($dest_file_path);
}
SC_Utils_Ex::copyDirectory($cur_path . '/', $dest_file_path . '/');
} else {
if (file_exists($dest_file_path)) {
unlink($dest_file_path);
}
copy($cur_path, $dest_file_path);
}
}
}
示例4: installPlugin
/**
* プラグインをインストールします.
*
* @param string $archive_file_name アーカイブファイル名.
* @param string $key キー.
* @return array エラー情報を格納した連想配列.
*/
public function installPlugin($archive_file_name, $key)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->begin();
// 一時展開ディレクトリにファイルがある場合は事前に削除.
$arrFileHash = SC_Helper_FileManager_Ex::sfGetFileList(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
if (count($arrFileHash) > 0) {
SC_Helper_FileManager_Ex::deleteFile(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, false);
}
//シンタックスエラーがあるtar.gzをアップ後、削除するとたまにディレクトリが消えるので追加
$this->makeDir(PLUGIN_UPLOAD_REALDIR);
$arrErr = array();
// 必須拡張モジュールのチェック
$arrErr = SC_Plugin_Util_Ex::checkExtension($key);
if ($this->isError($arrErr) === true) {
return $arrErr;
}
// ファイルをチェックし一時展開用ディレクトリに展開します.
$arrErr = $this->unpackPluginFile($archive_file_name, DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $key);
if ($this->isError($arrErr) === true) {
return $arrErr;
}
// plugin_infoを読み込み.
$arrErr = $this->requirePluginFile(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR . 'plugin_info.php', $key);
if ($this->isError($arrErr) === true) {
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
return $arrErr;
}
// リフレクションオブジェクトを生成.
$objReflection = new ReflectionClass('plugin_info');
$arrPluginInfo = $this->getPluginInfo($objReflection);
// プラグインクラスに必須となるパラメータが正常に定義されているかチェックします.
$arrErr = $this->checkPluginConstants($objReflection, DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
if ($this->isError($arrErr) === true) {
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
return $arrErr;
}
// 既にインストールされていないかを判定.
if ($this->isInstalledPlugin($arrPluginInfo['PLUGIN_CODE']) === true) {
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
$arrErr['plugin_file'] = '※ ' . $arrPluginInfo['PLUGIN_NAME'] . 'は既にインストールされています。<br/>';
return $arrErr;
}
// プラグイン情報をDB登録
if ($this->registerData($arrPluginInfo) === false) {
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
$arrErr['plugin_file'] = '※ DB登録に失敗しました。<br/>';
return $arrErr;
}
// プラグイン保存ディレクトリを作成し、一時展開用ディレクトリから移動します.
$plugin_dir_path = $this->getPluginDir($arrPluginInfo['PLUGIN_CODE']);
$this->makeDir($plugin_dir_path);
SC_Utils_Ex::copyDirectory(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $plugin_dir_path);
// プラグイン情報を取得
$plugin = SC_Plugin_Util_Ex::getPluginByPluginCode($arrPluginInfo['PLUGIN_CODE']);
// クラスファイルを読み込み.
$plugin_class_file_path = $this->getPluginFilePath($plugin['plugin_code'], $plugin['class_name']);
$arrErr = $this->requirePluginFile($plugin_class_file_path, $key);
if ($this->isError($arrErr) === true) {
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $plugin['plugin_id']);
return $arrErr;
}
// プラグインhtmlディレクトリ作成
$plugin_html_dir_path = $this->getHtmlPluginDir($plugin['plugin_code']);
$this->makeDir($plugin_html_dir_path);
$arrErr = $this->execPlugin($plugin, $plugin['class_name'], 'install');
if ($this->isError($arrErr) === true) {
// エラー時, transactionがabortしてるのでロールバック
$objQuery->rollback();
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $plugin['plugin_id'], $plugin_html_dir_path);
return $arrErr;
}
$objQuery->commit();
// 不要なファイルの削除
SC_Helper_FileManager_Ex::deleteFile(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, false);
return $arrErr;
}
示例5: installPlugin
/**
* プラグインをインストールします.
*
* @param string $plugin_code プラグインコード.
* @param string $key キー.
* @return array エラー情報を格納した連想配列.
*/
function installPlugin($upload_file_file_name, $key)
{
// インストール前に不要なファイルを消しておきます.
SC_Helper_FileManager_Ex::deleteFile(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, false);
//シンタックスエラーがあるtar.gzをアップ後、削除するとたまにディレクトリが消えるので追加
$this->makeDir(PLUGIN_UPLOAD_REALDIR);
$arrErr = array();
// 必須拡張モジュールのチェック
$arrErr = SC_Plugin_Util_Ex::checkExtension($key);
if ($this->isError($arrErr) === true) {
return $arrErr;
}
// ファイルをチェックし一時展開用ディレクトリに展開します.
$arrErr = $this->unpackPluginFile($upload_file_file_name, DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $key);
if ($this->isError($arrErr) === true) {
return $arrErr;
}
// plugin_infoを読み込み.
$arrErr = $this->requirePluginFile(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR . 'plugin_info.php', $key);
if ($this->isError($arrErr) === true) {
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
return $arrErr;
}
// リフレクションオブジェクトを生成.
$objReflection = new ReflectionClass('plugin_info');
$arrPluginInfo = $this->getPluginInfo($objReflection);
// プラグインクラスに必須となるパラメータが正常に定義されているかチェックします.
$arrErr = $this->checkPluginConstants($objReflection, DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
if ($this->isError($arrErr) === true) {
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
return $arrErr;
}
// プラグインコード
$plugin_code = $arrPluginInfo['PLUGIN_CODE'];
// プラグイン名
$plugin_name = $arrPluginInfo['PLUGIN_NAME'];
// 既にインストールされていないかを判定.
if ($this->isInstalledPlugin($plugin_code) === true) {
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
$arrErr['plugin_file'] = '※ ' . $plugin_name . 'は既にインストールされています。<br/>';
return $arrErr;
}
// プラグイン情報をDB登録
if ($this->registerData($arrPluginInfo) === false) {
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
$arrErr['plugin_file'] = '※ DB登録に失敗しました。<br/>';
return $arrErr;
}
// プラグイン保存ディレクトリを作成し、一時展開用ディレクトリから移動します.
$plugin_dir_path = PLUGIN_UPLOAD_REALDIR . $plugin_code . '/';
$this->makeDir($plugin_dir_path);
SC_Utils_Ex::copyDirectory(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $plugin_dir_path);
// プラグイン情報を取得
$plugin = SC_Plugin_Util_Ex::getPluginByPluginCode($plugin_code);
// クラスファイルを読み込み.
$plugin_class_file_path = $plugin_dir_path . $plugin['class_name'] . '.php';
$arrErr = $this->requirePluginFile($plugin_class_file_path, $key);
if ($this->isError($arrErr) === true) {
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $plugin['plugin_id']);
return $arrErr;
}
// プラグインhtmlディレクトリ作成
$plugin_html_dir = PLUGIN_HTML_REALDIR . $plugin_code;
$this->makeDir($plugin_html_dir);
$arrErr = $this->execPlugin($plugin, $plugin['class_name'], 'install');
if ($this->isError($arrErr) === true) {
$this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $plugin['plugin_id'], $plugin_html_dir);
return $arrErr;
}
// 不要なファイルの削除
SC_Helper_FileManager_Ex::deleteFile(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, false);
return $arrErr;
}