public function doGenerate(ModuleGenerateEvent $event)
 {
     $generators = $event->getGenerators();
     $this->event = $event;
     if (empty($generators) || in_array($this->getName(), $generators)) {
         $this->generate($event);
     }
 }
 public function generate(ModuleGenerateEvent $event)
 {
     /** @var \SplFileInfo $file */
     foreach (Finder::create()->files()->in($event->getResourcesPath() . "raw-copy") as $file) {
         $relativePath = $relativePath = str_replace($event->getResourcesPath() . "raw-copy", "", $file->getRealPath());
         $completePath = $event->getModulePath() . $relativePath;
         @copy($file->getRealPath(), $completePath);
     }
 }
 public function generate(ModuleGenerateEvent $event)
 {
     $ruleReader = new RuleParser();
     /** @var \SplFileInfo $rule */
     foreach ($this->findInPath($event->getResourcesPath(), "/\\.rule\$/") as $rule) {
         $relativePath = str_replace($event->getResourcesPath(), "", $rule->getRealPath());
         $completePath = $event->getModulePath() . $relativePath;
         $completePath = substr($completePath, 0, -5);
         // remove .rule extension
         $rule = $ruleReader->readRules($rule->getRealPath());
         $this->processRule($rule, $completePath);
     }
 }
 public function generate(ModuleGenerateEvent $event)
 {
     $templates = $this->findInPath($event->getResourcesPath(), "/__TABLE__.*\\.php\$/");
     $this->parser->assign("moduleCode", $event->getModuleCode());
     $this->parser->assign("tables", $event->getEntities());
     foreach ($event->getEntities() as $entity) {
         $this->processPhp($entity, $templates, $event->getResourcesPath(), $event->getModuleCode(), $event->getModulePath());
     }
 }
 /**
  * @param ModuleGenerateEvent $event
  *
  * This method self prepares the event before running the generators.
  *
  * Here is the build process:
  * 1. Launch propel to validate the schema and generate model && sql
  * 2. Find / prepare all the resources
  * 3. Compile the module related classes
  * 4. Compile the table related classes
  * 5. Compile the templates
  * 6. Copy raw files
  * 7. Apply rules
  * 8. Add everything in config.xml and routing.xml
  */
 public function launchBuild(ModuleGenerateEvent $event)
 {
     // Backup trim level and set it to 0
     $previousTrimLevel = ConfigQuery::read("html_output_trim_level");
     ConfigQuery::write("html_output_trim_level", 0);
     $moduleCode = $event->getModuleCode();
     $modulePath = THELIA_MODULE_DIR . $moduleCode . DS;
     $resourcesPath = ConfigQuery::read(TheliaStudio::RESOURCE_PATH_CONFIG_NAME) . DS;
     if (!is_dir($resourcesPath) || !is_readable($resourcesPath)) {
         throw new FileNotFoundException(sprintf("The resources directory %s doesn't exist", $resourcesPath));
     }
     $e = null;
     try {
         $entities = $this->buildEntities($modulePath, $event->getTables());
         $event->setModulePath($modulePath)->setResourcesPath($resourcesPath)->setEntities($entities)->setKernel($this->kernel);
         $event->getDispatcher()->dispatch(TheliaStudioEvents::RUN_GENERATORS, $event);
     } catch (\Exception $e) {
     }
     // Restore trim level
     ConfigQuery::write("html_output_trim_level", $previousTrimLevel);
     if (null !== $e) {
         throw $e;
     }
 }
 public function generate(ModuleGenerateEvent $event)
 {
     $previousLeft = $this->parser->left_delimiter;
     $previousRight = $this->parser->right_delimiter;
     $this->parser->left_delimiter = '[{';
     $this->parser->right_delimiter = '}]';
     $templates = $this->findInPath($event->getResourcesPath(), "/__TABLE__.*\\.html\$/");
     $this->parser->assign("moduleCode", $event->getModuleCode());
     $this->parser->assign("tables", $event->getEntities());
     foreach ($event->getEntities() as $entity) {
         $this->processTemplate($entity, $templates, $event->getResourcesPath(), $event->getModuleCode());
     }
     $this->parser->left_delimiter = $previousLeft;
     $this->parser->right_delimiter = $previousRight;
 }
 public function generate(ModuleGenerateEvent $event)
 {
     $this->processConfiguration($event->getEntities(), $event->getModulePath(), $event->getModuleCode());
 }
 protected function buildEvent()
 {
     $parser = new SchemaParser();
     $entities = $parser->parseXml(new SimpleXMLElement(file_get_contents(__DIR__ . DS . str_replace("/", DS, static::TEST_MODULE_PATH) . "Config" . DS . "schema.xml")));
     $this->event->setKernel($this->kernel)->setModulePath($this->getStreamPath(''))->setEntities($entities)->setResourcesPath(realpath(__DIR__ . DS . ".." . DS . "Resources") . DS);
 }
 /**
  * @param  ModuleGenerateEvent $event
  * @return mixed
  */
 protected function generate(ModuleGenerateEvent $event)
 {
     $formConfig = $this->readConfigFormFile($event->getModulePath());
     if (empty($formConfig)) {
         return;
     }
     $this->parser->assign("form", $formConfig);
     $this->parser->assign("moduleCode", $event->getModuleCode());
     $this->generateClasses($event->getResourcesPath(), $event->getModulePath(), $event->getModuleCode());
     $this->generateTemplates($event->getResourcesPath(), $event->getModulePath(), $event->getModuleCode());
     $this->generateConfiguration($event->getModulePath(), $event->getModuleCode());
     $this->generateRouting($event->getModulePath(), $event->getModuleCode());
 }
 public function generate(ModuleGenerateEvent $event)
 {
     $this->generateSql($event->getModuleCode(), $event->getKernel());
     $this->generateModel($event->getModuleCode(), $event->getKernel());
     $this->removeMapFile($event->getModulePath());
 }