public function __construct() { $this->path = STORAGE_DIR . 'Cache/'; if (!isDirExists($this->path)) { library('Folder', 'create', array($this->path, 0777)); } }
public function exec() { try { /* check installed module */ if (false === isInstalled($this->parm)) { /* target module is already installed */ throw new \err\ComErr('specified module is not installed', 'please check \'spac mod list\''); } /* confirm */ echo 'Uninstall ' . $this->parm . ' module.' . PHP_EOL; echo 'Are you sure ?(y,n):'; $line = rtrim(fgets(STDIN), "\n"); if (!(0 === strcmp($line, 'y') || 0 === strcmp($line, 'Y'))) { exit; } /* delete module files */ if (true === isDirExists(__DIR__ . '/../../mod/' . $this->parm)) { try { delDir(__DIR__ . '/../../mod/' . $this->parm); } catch (\Exception $e) { throw new \err\ComErr('could not delete ' . __DIR__ . '/../../mod/' . $this->parm, 'please check directory'); } } /* edit module config */ $modcnf = yaml_parse_file(__DIR__ . '/../../../../conf/module.yml'); if (false === $modcnf) { throw new \err\ComErr('could not read module config file', 'please check ' . __DIR__ . '/../../../../conf/module.yml'); } $newcnf = array(); foreach ($modcnf as $elm) { if (0 === strcmp($this->parm, $elm['name'])) { continue; } $newcnf[] = $elm; } if (0 === count($newcnf)) { $newcnf = null; } if (false === copy(__DIR__ . '/../../../../conf/module.yml', __DIR__ . '/../../../../conf/module.yml_')) { throw new \err\ComErr('could not create backup of module config', 'please check ' . __DIR__ . '/../../../../conf'); } if (false === file_put_contents(__DIR__ . '/../../../../conf/module.yml', yaml_emit($newcnf))) { throw new \err\ComErr('could not edit module config file', 'please check ' . __DIR__ . '/../../../../conf/module.yml'); } unlink(__DIR__ . '/../../../../conf/module.yml_'); echo 'Successful uninstall ' . $this->parm . ' module ' . PHP_EOL; } catch (\Exception $e) { throw $e; } }
public function deleteEmpty($name = '') { if (!is_string($name)) { $name = ''; } if (isDirExists($name)) { rmdir($name); } else { $this->error = lang('Folder', 'notFoundError', $name); Error::set($this->error); } }
public static function package($packages = "", $differentExtension = array()) { if (!is_string($packages) || !isDirExists($packages) || !is_array($differentExtension)) { Error::set(lang('Error', 'stringParameter', 'packages')); Error::set(lang('Error', 'dirParameter', 'packages')); Error::set(lang('Error', 'arrayParameter', 'differentExtension')); return false; } if (Folder::files($packages)) { foreach (Folder::files($packages) as $val) { if (extension($val) === "php") { require_once suffix($packages) . $val; } elseif (extension($val) === "js") { echo '<script type="text/javascript" src="' . baseUrl() . suffix($packages) . $val . '"></script>' . eol(); } elseif (extension($val) === "css") { echo '<link href="' . baseUrl() . suffix($packages) . $val . '" rel="stylesheet" type="text/css" />' . eol(); } else { if (!empty($differentExtension)) { if (in_array(extension($val), $differentExtension)) { require_once suffix($packages) . $val; } } } } } else { return false; } }
function copyDir($src, $dst) { try { /* check source directory */ if (false === isDirExists($src)) { throw new \Exception('could not find source directory'); } /* check destination directory */ if (false === isDirExists($dst)) { if (false === mkdir($dst)) { throw new \Exception('could not create destination directory'); } } $scan = scandir($src); foreach ($scan as $elm) { if (0 === strcmp($elm, '.') || 0 === strcmp($elm, '..')) { continue; } $ftype = filetype($src . '/' . $elm); if (0 === strcmp($ftype, 'dir')) { copyDir($src . '/' . $elm, $dst . '/' . $elm); } else { if (false === copy($src . '/' . $elm, $dst . '/' . $elm)) { throw new \Exception('could not copy \'' . $src . '/' . $elm . '\'' . ' to \'' . $dst . '\''); } } } } catch (\Exception $e) { throw $e; } }
private static function searchClassMap($directory = '', $baseDirectory = '') { static $classes; // Dizin parametreleri / eki içermiyorsa // dizin bilgisinin sonuna / ekini ekle. $directory = suffix($directory); $baseDirectory = suffix($baseDirectory); // Dizine ait alt dosya ve dizinler alınıyor... $files = glob($directory . '*'); if (!empty($files)) { foreach ($files as $v) { // Sadece .php uzantılı dosyalar için işlem yap. if (is_file($v) && extension($v) === 'php') { $classEx = explode('/', $v); // Sınıf isimleri ve yolları oluşturuluyor... $classInfo = self::tokenClassFileInfo($v); if (isset($classInfo['class'])) { $class = strtolower($classInfo['class']); // İsim alanı varsa oluşturuluyor... if (isset($classInfo['namespace'])) { // İsim alanını oluştur. $className = strtolower($classInfo['namespace']) . '\\' . $class; $classes['namespaces'][$className] = $class; } else { $className = $class; } $classes['classes'][$className] = $v; $useStaticAccess = strtolower(STATIC_ACCESS); // Statik erişim sağlanmak istenen // Statik olmayan sınıfların // sınıf adına Static ön eki getirilerek // bu sınıfların statik kullanımlarının oluşturulması // sağlanabilir. if (strpos($class, $useStaticAccess) === 0) { // Yeni sınıf ismi oluşturuluyor... $newClassName = str_ireplace($useStaticAccess, '', $classInfo['class']); // Yeni sınıf dizini oluşturuluyor... $newPath = str_ireplace($baseDirectory, '', $v); // Yeni StaticAccess/ dizin yolu oluşturuluyor... $pathEx = explode('/', $newPath); array_pop($pathEx); $newDir = implode('/', $pathEx); $dir = SYSTEM_LIBRARIES_DIR . 'StaticAccess/'; $newDir = $dir . $newDir; if (!isDirExists($dir)) { mkdir($dir, 0777, true); } // Oluşturulacak dizinin var olup olmadığı // kontrol ediliyor... if (!isDirExists($newDir)) { // StaticAccess/ dizini içi sınıf dizini oluşturuluyor... mkdir($newDir, 0777, true); } $path = suffix($newDir) . $classInfo['class'] . '.php'; // Oluşturulacak dosyanın var olup olmadığı // kontrol ediliyor... if (!file_exists($path)) { // Statik sınıf içeriği oluşturuluyor.... $classContent = '<?php' . eol(); $classContent .= 'class ' . $newClassName . ' extends StaticAccess' . eol(); $classContent .= '{' . eol(); $classContent .= "\t" . 'public static function getClassName()' . eol(); $classContent .= "\t" . '{' . eol(); $classContent .= "\t\t" . 'return __CLASS__;' . eol(); $classContent .= "\t" . '}' . eol(); $classContent .= '}'; // Dosya yazdırılıyor... $fileOpen = fopen($path, 'w'); $fileWrite = fwrite($fileOpen, $classContent); if (empty($fileWrite)) { die(getErrorMessage('Error', 'fileNotWrite', $path)); } fclose($fileOpen); } $classes['classes'][strtolower($newClassName)] = $path; } } } elseif (is_dir($v)) { // Yol bir dizini ifade ediyorsa taramaya devam et. self::searchClassMap($v, $baseDirectory); } } } return $classes; }