Пример #1
0
 /**
  * Default run method
  * TODO: Needs more work
  * @return	void
  */
 public function run()
 {
     $this->printMessage('Generating code event listener...');
     $config = XDT_CLI_Application::getConfig();
     $namespace = $config['namespace'] . '_';
     $className = $namespace . 'Listener';
     if (!$namespace) {
         $namespace = '';
     }
     if (!XDT_CLI_Helper::classExists($className, false)) {
         //$extendName = 'XenForo_Controller' . XfCli_Helpers::camelcaseString($type, false) . '_Abstract';
         $class = new Zend_CodeGenerator_Php_Class();
         $class->setName($className);
         //$class->setExtendedClass($extendName);
         XDT_CLI_ClassGenerator::create($className, $class);
         $this->printMessage('ok');
     } else {
         $this->printMessage('skipped (already exists)');
     }
     $this->printMessage($namespace);
     if (!empty($config['name'])) {
         $this->printMessage($this->colorText('Active Add-on: ', XDT_CLI_Abstract::BROWN), false);
         $this->printMessage($config['name']);
     } else {
         $this->printMessage($this->colorText('No add-on selected.', XDT_CLI_Abstract::RED));
     }
 }
Пример #2
0
 /**
  * Create (or modify) given class
  *
  * @param	string							$className
  * @param	Zend_CodeGenerator_Php_Class	$class
  *
  * @return	Zend_CodeGenerator_Php_Class
  */
 public static function create($className, Zend_CodeGenerator_Php_Class $class = null)
 {
     // If no class data is given and the class already exists there's no point in "creating" it
     if ($class == null and XDT_CLI_Helper::classExists($className)) {
         return self::get($className);
     }
     // Only create class if the file is available or we have class data
     $filePath = self::getClassPath($className);
     $fileContents = file_exists($filePath) ? file_get_contents($filePath) : false;
     if (empty($fileContents) or $class != null) {
         // Load blank CodeGenerator file
         $file = new Zend_CodeGenerator_Php_File();
         // Create CodeGenerato Class if it wasn't provided as a parm
         if ($class == null) {
             $class = new Zend_CodeGenerator_Php_Class();
             $class->setName($className);
         }
         // Append class to file
         $file->setClass($class);
         // Write to file
         XDT_CLI_Helper::writeToFile($filePath, $file->generate(), true);
         XDT_CLI_Abstract::getInstance()->printMessage("File: " . $filePath);
     } else {
         XDT_CLI_Abstract::getInstance()->bail("File already exists: " . $filePath);
     }
     return self::get($className);
 }
Пример #3
0
 /**
  * Check if given class exists and creates dummy XFCP class to prevent errors if necessary
  *
  * @param	string			$className
  * @param	bool			$createXfcp
  * @param 	bool 			$alias
  *
  * @return	bool
  */
 public static function classExists($className, $createXfcp = true, $alias = true)
 {
     if ($createXfcp) {
         $xfcpClass = 'XFCP_' . $className;
         if (!XDT_CLI_Helper::classExists($xfcpClass, false, false)) {
             eval("class {$xfcpClass} {}");
         }
     }
     if ($alias) {
         $className = XDT_CLI_Helper::loadClassAliased($className);
     }
     try {
         return class_exists($className);
     } catch (Exception $e) {
     }
     return false;
 }