Пример #1
0
 protected function getClassNameHash($dirs)
 {
     if (is_string($dirs)) {
         $dirs = (array) $dirs;
     }
     $data = array();
     foreach ($dirs as $dir) {
         if (file_exists($dir)) {
             $fileList = $this->getFileManager()->getFileList($dir, false, '\\.php$', true);
             foreach ($fileList as $file) {
                 $filePath = Util::concatPath($dir, $file);
                 $className = Util::getClassName($filePath);
                 $fileName = $this->getFileManager()->getFileName($filePath);
                 $scopeName = ucfirst($fileName);
                 $normalizedScopeName = Util::normilizeScopeName($scopeName);
                 if (empty($this->allowedMethods)) {
                     $data[$normalizedScopeName] = $className;
                     continue;
                 }
                 foreach ($this->allowedMethods as $methodName) {
                     if (method_exists($className, $methodName)) {
                         $data[$normalizedScopeName] = $className;
                     }
                 }
             }
         }
     }
     return $data;
 }
Пример #2
0
 protected function initFieldTypes()
 {
     foreach ($this->fieldTypePaths as $path) {
         $typeList = $this->getFileManager()->getFileList($path, false, '\\.php$');
         if ($typeList !== false) {
             foreach ($typeList as $name) {
                 $typeName = preg_replace('/\\.php$/i', '', $name);
                 $dbalTypeName = strtolower($typeName);
                 $filePath = Util::concatPath($path, $typeName);
                 $class = Util::getClassName($filePath);
                 if (!Type::hasType($dbalTypeName)) {
                     Type::addType($dbalTypeName, $class);
                 } else {
                     Type::overrideType($dbalTypeName, $class);
                 }
                 $dbTypeName = method_exists($class, 'getDbTypeName') ? $class::getDbTypeName() : $dbalTypeName;
                 $this->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping($dbTypeName, $dbalTypeName);
             }
         }
     }
 }
Пример #3
0
 /**
  * Get and merge hook data by checking the files exist in $hookDirs
  *
  * @param array $hookDirs - it can be an array('Fox/Hooks', 'Fox/Custom/Hooks', 'Fox/Modules/Crm/Hooks')
  *
  * @return array
  */
 protected function getHookData($hookDirs)
 {
     if (is_string($hookDirs)) {
         $hookDirs = (array) $hookDirs;
     }
     $hooks = array();
     foreach ($hookDirs as $hookDir) {
         if (file_exists($hookDir)) {
             $fileList = $this->getFileManager()->getFileList($hookDir, 1, '\\.php$', true);
             foreach ($fileList as $scopeName => $hookFiles) {
                 $hookScopeDirPath = Util::concatPath($hookDir, $scopeName);
                 $scopeHooks = array();
                 foreach ($hookFiles as $hookFile) {
                     $hookFilePath = Util::concatPath($hookScopeDirPath, $hookFile);
                     $className = Util::getClassName($hookFilePath);
                     foreach ($this->hookList as $hookName) {
                         if (method_exists($className, $hookName)) {
                             $scopeHooks[$hookName][$className::$order][] = $className;
                         }
                     }
                 }
                 //sort hooks by order
                 foreach ($scopeHooks as $hookName => $hookList) {
                     ksort($hookList);
                     $sortedHookList = array();
                     foreach ($hookList as $hookDetails) {
                         $sortedHookList = array_merge($sortedHookList, $hookDetails);
                     }
                     $normalizedScopeName = Util::normilizeScopeName($scopeName);
                     $hooks[$normalizedScopeName][$hookName] = isset($hooks[$normalizedScopeName][$hookName]) ? array_merge($hooks[$normalizedScopeName][$hookName], $sortedHookList) : $sortedHookList;
                 }
             }
         }
     }
     return $hooks;
 }