Example #1
0
 /**
  * @param $filename
  * @param string $ext
  * @return string
  */
 protected function getImageSavePath($filename, $ext = 'jpg')
 {
     $convertedImageFileName = trim($this->config->get('IMAGE_PATH')->value, '/');
     if (!is_dir('Public' . DIRECTORY_SEPARATOR . $convertedImageFileName)) {
         mkdir('Public' . DIRECTORY_SEPARATOR . $convertedImageFileName, 0755, true);
     }
     $convertedImageFileName .= DIRECTORY_SEPARATOR . $filename . '.' . $ext;
     return 'Public' . DIRECTORY_SEPARATOR . trim($this->fileManager->convertDirSeparator($convertedImageFileName), '/');
 }
Example #2
0
 /**
  * @return array
  */
 public function getModelDirs()
 {
     $entities = $this->fileManager->findFiles($this->core->getApplicationDir() . DIRECTORY_SEPARATOR . 'Entity', GLOB_ONLYDIR);
     foreach ($entities as $k => $entity) {
         $pathWithoutAppDir = str_ireplace($this->core->getApplicationDir(), '', $entity);
         if (preg_match('@^.*/\\b(tests|test)\\b/?.*$@i', $pathWithoutAppDir)) {
             unset($entities[$k]);
         }
     }
     return $entities;
 }
Example #3
0
File: Hook.php Project: fraym/core
 /**
  * @return $this
  */
 public function load()
 {
     $phpFiles = $this->fileManager->findFiles('Hook' . DIRECTORY_SEPARATOR . '*.php');
     foreach ($phpFiles as $phpFile) {
         require_once $phpFile;
         $loadedClasses = get_declared_classes();
         $class = end($loadedClasses);
         $reflector = new \ReflectionClass($class);
         $parentClass = $reflector->getParentClass();
         if ($parentClass) {
             $shortNameClass = str_replace('Fraym\\Hook\\', 'Fraym\\', $reflector->getName());
             $shortNameClassHook = $parentClass->getName();
             if ($shortNameClass === $shortNameClassHook) {
                 $this->serviceLocator->set($parentClass->name, $this->serviceLocator->get($class));
                 $this->_hooks[$class] = $parentClass->name;
             }
         }
     }
     return $this;
 }
Example #4
0
 /**
  * @return array
  */
 public function getExtensions()
 {
     $extensions = [];
     $coreFiles = $this->fileManager->findFiles($this->core->getApplicationDir() . DIRECTORY_SEPARATOR . 'Fraym' . DIRECTORY_SEPARATOR . '*.php');
     $extensionFiles = $this->fileManager->findFiles($this->core->getApplicationDir() . DIRECTORY_SEPARATOR . 'Extension' . DIRECTORY_SEPARATOR . '*.php');
     $files = array_merge($coreFiles, $extensionFiles);
     foreach ($files as $file) {
         $classname = basename($file, '.php');
         $namespace = str_ireplace($this->core->getApplicationDir(), '', dirname($file));
         $namespace = str_replace('/', '\\', $namespace) . '\\';
         $namespace = preg_replace('#^' . preg_quote('\\') . 'Extension' . preg_quote('\\') . '#', '\\Fraym\\Extension\\', $namespace);
         $namespace = preg_replace('#^' . preg_quote('\\') . 'Hook' . preg_quote('\\') . '#', '\\Fraym\\Hook\\', $namespace);
         $namespace = preg_replace('#^' . preg_quote('\\') . 'Test' . preg_quote('\\') . '#', '\\Fraym\\Test\\', $namespace);
         $class = $namespace . $classname;
         if (is_file($file)) {
             require_once $file;
             if (class_exists($class)) {
                 $classAnnotation = $this->getRegistryConfig($class);
                 if ($classAnnotation) {
                     $registryEntry = $this->db->getRepository('\\Fraym\\Registry\\Entity\\Registry')->findOneByClassName($class);
                     $extensions[$class] = (array) $classAnnotation;
                     if ($classAnnotation->composerPackage === true) {
                         $package = $this->getPackage($classAnnotation->repositoryKey);
                         if ($package) {
                             $package = $this->getLatestPackageVersion($package);
                             $extensions[$class]['package'] = $package->getName();
                             $extensions[$class]['description'] = $package->getDescription();
                             $extensions[$class]['version'] = $package->getVersion();
                             $extensions[$class]['homepage'] = $package->getHomepage();
                             $extensions[$class]['author'] = $this->getAuthorsFromPackage($package);
                         }
                     } else {
                         $extensions[$class]['package'] = $classAnnotation->repositoryKey;
                         $extensions[$class]['description'] = '';
                         $extensions[$class]['version'] = '0.0.0';
                         $extensions[$class]['homepage'] = null;
                         $extensions[$class]['author'] = null;
                     }
                     $extensions[$class]['registred'] = $registryEntry !== null;
                 }
             }
         }
     }
     return $extensions;
 }
Example #5
0
 /**
  * @param Entity\Registry $registry
  * @return bool|string
  */
 public function buildPackage(Entity\Registry $registry)
 {
     $classAnnotation = $this->getRegistryConfig($registry->className);
     $files = array();
     foreach ($classAnnotation->files as $path) {
         $files = array_merge($files, $this->fileManager->findFiles($path));
     }
     $filename = tempnam(sys_get_temp_dir(), 'ext');
     $zip = new \ZipArchive();
     if ($zip->open($filename, \ZipArchive::CREATE) !== true) {
         return false;
     }
     foreach ($files as $file) {
         if (is_dir($file)) {
             $zip->addEmptyDir($file);
         } else {
             $zip->addFile($file);
         }
     }
     $zip->close();
     return $filename;
 }
Example #6
0
File: Cache.php Project: fraym/core
 /**
  * @Fraym\Annotation\Route("cacheClearAll", name="cacheClearAll")
  */
 public function clearAll()
 {
     // clear PHP opcache
     if (function_exists('opcache_reset')) {
         opcache_reset();
     }
     // clear APC/APCu Cache
     if (function_exists('apc_clear_cache')) {
         apc_clear_cache('user');
         apc_clear_cache();
     }
     if (defined('CACHE_DI_PATH')) {
         $this->fileManager->deleteFolder(CACHE_DI_PATH);
     }
     if (defined('CACHE_DOCTRINE_PROXY_PATH')) {
         $this->fileManager->deleteFolder(CACHE_DOCTRINE_PROXY_PATH);
     }
     $this->fileManager->deleteFolder(self::DIR_PAGES);
     $this->fileManager->deleteFolder(self::DIR_CUSTOM_DATA);
     $this->fileManager->deleteFolder('Public' . CONSOLIDATE_FOLDER);
     self::createCacheFolders();
 }
Example #7
0
 /**
  * @return array
  */
 public function getModelDirs()
 {
     $entities = $this->fileManager->findFiles($this->core->getApplicationDir() . DIRECTORY_SEPARATOR . 'Entity', GLOB_ONLYDIR);
     return $entities;
 }
Example #8
0
 /**
  * @return array
  */
 protected function getTemplateFiles()
 {
     $path = $this->getTemplatePath();
     return $this->fileManager->getFiles($path);
 }
Example #9
0
File: Route.php Project: fraym/core
 /**
  * @return $this
  */
 protected function initAnnotationRoutes()
 {
     \Doctrine\Common\Annotations\AnnotationRegistry::registerFile($this->core->getApplicationDir() . '/Fraym/Annotation/Route.php');
     $coreFiles = $this->fileManager->findFiles($this->core->getApplicationDir() . DIRECTORY_SEPARATOR . 'Fraym' . DIRECTORY_SEPARATOR . '*.php');
     $extensionFiles = $this->fileManager->findFiles($this->core->getApplicationDir() . DIRECTORY_SEPARATOR . 'Extension' . DIRECTORY_SEPARATOR . '*.php');
     foreach (array_merge($coreFiles, $extensionFiles) as $file) {
         $classname = basename($file, '.php');
         $namespace = str_ireplace($this->core->getApplicationDir(), '', dirname($file));
         $namespace = str_replace('/', '\\', $namespace) . '\\';
         $namespace = preg_replace('#^' . preg_quote('\\') . 'Extension' . preg_quote('\\') . '#', '\\Fraym\\Extension\\', $namespace);
         $namespace = preg_replace('#^' . preg_quote('\\') . 'Test' . preg_quote('\\') . '#', '\\Fraym\\Test\\', $namespace);
         $namespace = preg_replace('#^' . preg_quote('\\') . 'Hook' . preg_quote('\\') . '#', '\\Fraym\\Hook\\', $namespace);
         $class = $namespace . $classname;
         if (is_file($file)) {
             require_once $file;
             if (class_exists($class)) {
                 $this->initClassAnnotationRoutes($class);
                 foreach (get_class_methods($class) as $method) {
                     $key = null;
                     $refMethod = new \ReflectionMethod($class, $method);
                     $methodAnnotation = $this->db->getAnnotationReader()->getMethodAnnotation($refMethod, 'Fraym\\Annotation\\Route');
                     if (empty($methodAnnotation) === false) {
                         $route = $methodAnnotation->value;
                         $key = $methodAnnotation->name;
                         $regex = $methodAnnotation->regex;
                         $permission = $methodAnnotation->permission;
                         $callback = [$class, $method];
                         $contextCallback = null;
                         $this->addVirtualRoute($key, $route, $callback, $contextCallback, $regex, $permission);
                     }
                 }
             }
         }
     }
 }
Example #10
0
 /**
  * @param $dir
  * @return bool
  */
 private function deleteFolder($dir)
 {
     return $this->fileManager->deleteFolder($dir);
 }
Example #11
0
 /**
  * @param $dir
  * @return bool
  */
 protected function deleteFolder($dir)
 {
     return $this->fileManager->deleteFolder($dir);
 }