Пример #1
0
 /**
  * Create view helper factory
  *
  * @return bool
  */
 public function createViewHelperFactory()
 {
     // get needed options to shorten code
     $moduleName = $this->requestOptions->getModuleName();
     $viewHelperClass = $this->requestOptions->getViewHelperClass();
     $viewHelperPath = $this->requestOptions->getViewHelperPath();
     $factoryClass = $viewHelperClass . 'Factory';
     $factoryFile = $factoryClass . '.php';
     $factoryFilePath = $viewHelperPath . $factoryFile;
     // check for factory class
     if (file_exists($factoryFilePath)) {
         throw new GeneratorException('The factory for this view helper exists already.');
     }
     // create controller class with class generator
     $code = new ClassGenerator();
     $code->setNamespaceName($moduleName . '\\View\\Helper');
     $code->addUse('Zend\\ServiceManager\\FactoryInterface');
     $code->addUse('Zend\\ServiceManager\\ServiceLocatorInterface');
     $code->setName($factoryClass);
     $code->setImplementedInterfaces(array('FactoryInterface'));
     $code->addMethodFromGenerator($this->generateCreateServiceMethod($viewHelperClass, 'viewHelperManager', 'viewHelper'));
     // add optional doc block
     if ($this->flagCreateApiDocs) {
         $code->setDocBlock(new DocBlockGenerator('Factory for ' . $viewHelperClass, 'Please add a proper description for the ' . $viewHelperClass . ' factory', array($this->generatePackageTag($moduleName))));
     }
     // create file with file generator
     $file = new FileGenerator();
     $file->setClass($code);
     // add optional doc block
     if ($this->flagCreateApiDocs) {
         $file->setDocBlock(new DocBlockGenerator('This file was generated by FrilleZFTool.', null, array($this->generatePackageTag($moduleName), $this->generateSeeTag())));
     }
     // write controller class
     if (!file_put_contents($factoryFilePath, $file->generate())) {
         return false;
     }
     return true;
 }
Пример #2
0
 /**
  * Create a view helper
  *
  * @return ConsoleModel
  */
 public function viewHelperAction()
 {
     // check for help mode
     if ($this->requestOptions->getFlagHelp()) {
         return $this->viewHelperHelp();
     }
     // output header
     $this->consoleHeader('Creating new view helper');
     // get needed options to shorten code
     $path = $this->requestOptions->getPath();
     $flagWithFactory = $this->requestOptions->getFlagWithFactory();
     $moduleName = $this->requestOptions->getModuleName();
     $modulePath = $this->requestOptions->getModulePath();
     $viewHelperName = $this->requestOptions->getViewHelperName();
     $viewHelperPath = $this->requestOptions->getViewHelperPath();
     $viewHelperClass = $this->requestOptions->getViewHelperClass();
     $viewHelperFile = $this->requestOptions->getViewHelperFile();
     // check for module path and application config
     if (!file_exists($path . '/module') || !file_exists($path . '/config/application.config.php')) {
         return $this->sendError(array(array(Color::NORMAL => 'The path '), array(Color::RED => $path), array(Color::NORMAL => ' doesn\'t contain a ZF2 application.')));
     }
     // check if helper name provided
     if (!$viewHelperName) {
         return $this->sendError(array(array(Color::NORMAL => 'Please provide the view helper name as parameter.')));
     }
     // check if module name provided
     if (!$moduleName) {
         return $this->sendError(array(array(Color::NORMAL => 'Please provide the module name as parameter.')));
     }
     // set mode
     if (file_exists($viewHelperPath . $viewHelperFile)) {
         $mode = 'update';
     } else {
         $mode = 'insert';
     }
     // check if view helper exists already in module
     if ($mode == 'update' && !$flagWithFactory) {
         return $this->sendError(array(array(Color::NORMAL => 'The view helper '), array(Color::RED => $viewHelperName), array(Color::NORMAL => ' already exists in module '), array(Color::RED => $moduleName), array(Color::NORMAL => '.')));
     }
     // create view helper
     if ($mode == 'insert') {
         // write start message
         $this->console->write('       => Creating view helper ');
         $this->console->write($viewHelperName, Color::GREEN);
         $this->console->write(' in module ');
         $this->console->writeLine($moduleName, Color::GREEN);
         // create view helper class
         $viewHelperFlag = $this->moduleGenerator->createViewHelper();
         // write start message
         $this->console->write('       => Adding view helper configuration for ');
         $this->console->writeLine($moduleName, Color::GREEN);
         // add view helper configuration to module
         $moduleConfig = $this->moduleConfigurator->addViewHelperConfig();
     }
     // check for factory flag
     if ($flagWithFactory) {
         // create view helper factory class
         try {
             $factoryFlag = $this->moduleGenerator->createViewHelperFactory();
         } catch (GeneratorException $e) {
             return $this->sendError(array(array(Color::NORMAL => 'The factory for the view helper '), array(Color::RED => $viewHelperName), array(Color::NORMAL => ' of module '), array(Color::RED => $moduleName), array(Color::NORMAL => ' exists already.')));
         }
         // write start message
         $this->console->write('       => Creating factory for view helper ');
         $this->console->write($viewHelperName, Color::GREEN);
         $this->console->write(' in module ');
         $this->console->writeLine($moduleName, Color::GREEN);
         // add view helper factory configuration to module
         $moduleConfig = $this->moduleConfigurator->addViewHelperFactoryConfig();
     } else {
         $factoryFlag = false;
     }
     // check for module config updates
     if ($moduleConfig) {
         // update module configuration
         $this->moduleGenerator->updateConfiguration($moduleConfig, $modulePath . '/config/module.config.php');
         // write start message
         $this->console->write('       => Updating configuration for module ');
         $this->console->writeLine($moduleName, Color::GREEN);
     }
     $this->console->writeLine();
     $this->console->write(' Done ', Color::NORMAL, Color::CYAN);
     $this->console->write(' ');
     // write message
     if ($factoryFlag) {
         $this->console->write('The view helper ');
         $this->console->write($viewHelperName, Color::GREEN);
         $this->console->write(' has been created with a factory in module ');
         $this->console->writeLine($moduleName, Color::GREEN);
     } else {
         $this->console->write('The view helper ');
         $this->console->write($viewHelperName, Color::GREEN);
         $this->console->write(' has been created in module ');
         $this->console->writeLine($moduleName, Color::GREEN);
     }
     $this->console->writeLine();
     $this->console->writeLine('       => In order to use the view helper add the following code to any view script.');
     $this->console->writeLine('          <?php echo $this->' . lcfirst($viewHelperName) . '(); ?>', Color::CYAN);
     // output footer
     $this->consoleFooter('view helper was successfully created');
 }