コード例 #1
0
ファイル: Main.php プロジェクト: kingsj/core
 /**
  * Modify class source
  *
  * @param \Includes\Decorator\DataStructure\Graph\Classes $node Current node
  *
  * @return void
  */
 protected function writeCallToSourceFile(\Includes\Decorator\DataStructure\Graph\Classes $node)
 {
     $path = LC_DIR_CACHE_CLASSES . $node->getPath();
     $content = \Includes\Utils\FileManager::read($path);
     $content .= PHP_EOL . '// Call static constructor' . PHP_EOL;
     $content .= '\\' . $node->getClass() . '::' . static::STATIC_CONSTRUCTOR_METHOD . '();';
     \Includes\Utils\FileManager::write($path, $content);
 }
コード例 #2
0
ファイル: Main.php プロジェクト: kirkbauer2/kirkxc
 /**
  * Returns repository class for model class of current node
  *
  * @param \Includes\Decorator\DataStructure\Graph\Classes $node Current node
  *
  * @return string
  */
 protected function getRepositoryClass(\Includes\Decorator\DataStructure\Graph\Classes $node)
 {
     $repositoryClass = null;
     if (!($node->isLowLevelNode() || $node->isTopLevelNode() || !$node->isDecorator())) {
         $children = $node->getChildren();
         $repositoryClass = isset($children[0]) ? $this->getRepositoryClass($children[0]) : $this->getDefaultRepositoryClass('');
     } else {
         $repositoryClass = \Includes\Utils\Converter::getPureClassName($node->getClass());
         $repositoryClass = \Includes\Utils\Converter::prepareClassName(str_replace('\\Model\\', '\\Model\\Repo\\', $repositoryClass), false);
         if (!\XLite\Core\Operator::isClassExists($repositoryClass)) {
             $repositoryClass = $this->getDefaultRepositoryClass($repositoryClass);
         }
     }
     return $repositoryClass;
 }
コード例 #3
0
ファイル: ADocBlock.php プロジェクト: kingsj/core
 /**
  * Condition to check for rewrite
  *
  * @param \Includes\Decorator\DataStructure\Graph\Classes $node Current node
  *
  * @return boolean
  */
 protected function checkRewriteCondition(\Includes\Decorator\DataStructure\Graph\Classes $node)
 {
     return is_subclass_of($node->getClass(), '\\XLite\\Model\\AEntity');
 }
コード例 #4
0
ファイル: Classes.php プロジェクト: kingsj/core
 /**
  * Return actual parent class name
  *
  * @param self $parent Node to get class name OPTIONAL
  *
  * @return string
  */
 protected function getActualParentClassName(self $parent = null)
 {
     return $parent && ($class = $parent->getClass()) ? '\\' . $this->prepareClassName($class) : null;
 }
コード例 #5
0
ファイル: Main.php プロジェクト: kirkbauer2/kirkxc
 /**
  * Callback to search annotated PHP classes
  *
  * @param \Includes\Decorator\DataStructure\Graph\Classes $node Current node
  *
  * @return void
  */
 public function checkClassForListChildTag(\Includes\Decorator\DataStructure\Graph\Classes $node)
 {
     if (!$node->isLowLevelNode() && preg_match('/^XLite(?:\\\\Module\\\\[A-Za-z0-9]+\\\\[A-Za-z0-9]+)?\\\\View\\\\/Ss', $node->getClass())) {
         $lists = $node->getTag(static::TAG_LIST_CHILD);
         if ($lists) {
             $data = array('child' => $node->getTopLevelNode()->getClass());
             foreach ($lists as $tags) {
                 $this->annotatedPHPCLasses[] = $data + $tags;
             }
         }
     }
 }
コード例 #6
0
ファイル: Main.php プロジェクト: kingsj/core
 /**
  * Remove the module-related part from module controller class
  *
  * @param \Includes\Decorator\DataStructure\Graph\Classes $node Node to get and prepare class
  *
  * @return void
  */
 protected function prepareModuleControllerClass(\Includes\Decorator\DataStructure\Graph\Classes $node)
 {
     return preg_replace(static::PATTERN, 'XLite\\\\Controller$2', $node->getClass());
 }