function my_onWorkerStart($serv, $worker_id) { processRename($serv, $worker_id); if (!$serv->taskworker) { swoole_process::signal(SIGUSR2, function ($signo) { echo "SIGNAL: {$signo}\n"; }); } //forkChildInWorker(); // setTimerInWorker($serv, $worker_id); }
function my_onWorkerStart(swoole_server $serv, $worker_id) { processRename($serv, $worker_id); if (!$serv->taskworker) { swoole_process::signal(SIGUSR2, function ($signo) { echo "SIGNAL: {$signo}\n"; }); // swoole_timer_tick(2000, function($id) { // var_dump($id); // }); } else { $serv->tick(1000, function ($id) use($serv) { if (G::$index > 10) { $serv->after(2500, 'timer_show', 2); G::$index = 0; } else { G::$index++; } timer_show($id); }); } //forkChildInWorker(); // setTimerInWorker($serv, $worker_id); }
function uploadTheme($themeName, $filename, $tmp_path) { $uniqid = uniqid(); $sandbox = FilesHelper::normalizePath(_PS_CACHE_DIR_ . 'sandbox' . DIRECTORY_SEPARATOR . $uniqid) . '/'; $uploadDir = $sandbox . ThemeInstallHelper::UPLOADED_THEME_DIR_NAME; // used in AdminThemesController $base_path = $uploadDir . '.zip'; FilesHelper::createDir($sandbox); FilesHelper::renameFile($tmp_path, $base_path); $archive = new PclZip($base_path); deleteFromArchive($archive, 'modules', true); // We upload new theme, not modules to save module functionality $helper = new ThemeInstallHelper(); if ($helper->install($base_path, $sandbox)) { $result = array('status' => 'done', 'path' => $base_path); } else { $themesDir = $uploadDir . '/themes'; $files = FilesHelper::enumerate($themesDir, false); // not enumerateFiles method with directory checking if (count($files) === 1 && is_dir($files[0]['path'])) { $themeName = str_replace("{$themesDir}/", '', $files[0]['path']); } if ($themeName && ($theme = Theme::getByDirectory($themeName)) && is_file($uploadDir . '/Config.xml')) { $themeDir = $themesDir . '/' . $themeName; $previewThemeDir = $themeDir . '/' . $themeName . _PREVIEW_SUFFIX_; $newThemeName = checkThemeName($themeName); $newThemeDir = $themesDir . '/' . $newThemeName; $newThemePreviewDir = $themeDir . '/' . $newThemeName . _PREVIEW_SUFFIX_; // 1. rename inner preview folder processRename($themeDir, $previewThemeDir, $newThemeDir, $newThemePreviewDir, $newThemeName); $newThemePreviewDir = $newThemeDir . '/' . $newThemeName . _PREVIEW_SUFFIX_; // 2. now preview folder is correct FilesHelper::deleteFile($uploadDir . '/Config.xml'); FilesHelper::copyFile($newThemePreviewDir . '/designer/Export/Config.xml', $uploadDir . '/Config.xml'); unset($archive); FilesHelper::deleteFile($base_path); $archive = new PclZip($base_path); addToArchive($archive, $uploadDir, $uploadDir); $helper = new ThemeInstallHelper(); // new object with no errors if ($helper->install($base_path, $sandbox)) { $result = array('status' => 'done', 'path' => $base_path); } else { $result = array('status' => 'error', 'errors' => Tools::jsonEncode($helper->getErrors())); } } else { $result = array('status' => 'error', 'errors' => 'Please make sure, that you have selected a valid PrestaShop theme.'); } } return $result; }
function my_onWorkerStart(swoole_server $serv, $worker_id) { processRename($serv, $worker_id); if (!$serv->taskworker) { swoole_process::signal(SIGUSR2, function ($signo) { echo "SIGNAL: {$signo}\n"; }); $serv->defer(function () { echo "defer call\n"; }); } else { // swoole_timer_after(2000, function() { // echo "after 2 secends.\n"; // }); // $serv->tick(1000, function ($id) use ($serv) { // if (G::$index > 10) { // $serv->after(2500, 'timer_show', 2); // G::$index = 0; // } else { // G::$index++; // } // timer_show($id); // }); } //forkChildInWorker(); // setTimerInWorker($serv, $worker_id); }
private function prepareCopyRename($newThemeName, $rename = true) { moveInnerPreview($this->_themeName); // inner preview can exist if theme was upload from Themler in zip archive $newThemeDir = FilesHelper::normalizePath(getThemeDir($newThemeName)); $newThemePreviewDir = FilesHelper::normalizePath(getThemeDir($newThemeName . _PREVIEW_SUFFIX_)); processRename($this->_themeDir, $this->_previewThemeDir, $newThemeDir, $newThemePreviewDir, $newThemeName, $rename); }