/** * Clear assets cache. * * @param bool $refresh Install and compile new assets? * @param string $themeDirectory Theme directory. * * @return void */ public function clear($refresh = true, $themeDirectory = '') { $location = $this->_getLocation(); $files = FsUtilities::fsRecursiveGlob($location, '*'); // get all file names // iterate files foreach ($files as $file) { if (is_file($file)) { @unlink($file); // delete file } } if ($refresh) { $this->installAssets($themeDirectory); } }
/** * Create new package according to data. * * @param array $data Package data. * * @return void */ public function createPackage($data) { $data['defaultModuleUpper'] = ucfirst(Application::SYSTEM_DEFAULT_MODULE); $data['nameUpper'] = ucfirst($data['name']); $data['moduleNamespace'] = ''; if ($data['type'] == self::PACKAGE_TYPE_THEME) { $packageLocation = $this->getPackageLocation($data['type']) . $data['name']; } elseif ($data['type'] == self::PACKAGE_TYPE_WIDGET && !empty($data['module'])) { $data['moduleNamespace'] = ucfirst($data['module']); $packageLocation = $this->getPackageLocation(self::PACKAGE_TYPE_MODULE) . $data['moduleNamespace'] . '/Widget/' . $data['nameUpper']; $data['moduleNamespace'] .= '\\'; } else { $packageLocation = $this->getPackageLocation($data['type']) . $data['nameUpper']; } Utilities::fsCheckLocation($packageLocation); // copy package structure Utilities::fsCopyRecursive(__DIR__ . DIRECTORY_SEPARATOR . 'Structure' . DIRECTORY_SEPARATOR . $data['type'], $packageLocation, false, ['.gitignore']); if ($data['type'] == self::PACKAGE_TYPE_PLUGIN) { @rename($packageLocation . DS . 'plugin.php', $packageLocation . DS . $data['nameUpper'] . '.php'); } // Replace placeholders in package. $placeholders = array_keys($data); $placeholdersValues = array_values($data); foreach ($placeholders as $key => $placeholder) { // Check header for comment block. if ($placeholder == 'header' && (strpos($placeholdersValues[$key], DS . '*') === false || strpos($placeholdersValues[$key], '*/') === false)) { $placeholdersValues[$key] = ''; } $placeholders[$key] = '%' . $placeholder . '%'; } foreach (Utilities::fsRecursiveGlob($packageLocation . DS, '*.*') as $filename) { $file = file_get_contents($filename); file_put_contents($filename, str_replace($placeholders, $placeholdersValues, $file)); } }