Esempio n. 1
0
 public function __construct()
 {
     parent::__construct();
     if (empty($this->entityType)) {
         $name = get_class($this);
         if (preg_match('@\\\\([\\w]+)$@', $name, $matches)) {
             $name = $matches[1];
         }
         if ($name != 'Record') {
             $this->entityType = Util::normilizeScopeName($name);
         }
     }
     $this->entityName = $this->entityType;
 }
Esempio n. 2
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;
 }
Esempio n. 3
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;
 }