Пример #1
0
 /**
  * Upgrade magento module
  *
  * @param string $mode - see mode constants
  * @param string $versionRequest - exact version or a mask depending on mode
  */
 public function upgrade($mode, $versionRequest)
 {
     if (!$this->exists()) {
         throw new Mtool_Codegen_Exception_Module("Seems like this module does not exist. Aborting.");
     }
     $config = new Mtool_Codegen_Config($this->getConfigPath('config.xml'));
     // Define version value
     $currentVersion = $config->get("modules/{$this->getName()}/version");
     switch ($mode) {
         case self::UPGRADE_MODE_EXACT:
             $version = $versionRequest;
             break;
         case self::UPGRADE_MODE_INCREMENT:
             $version = $this->_forceVersion($currentVersion, $versionRequest);
             break;
         default:
             throw new Mtool_Codegen_Exception_Module("Undefined version upgrade type: {$mode}");
     }
     $config->set("modules/{$this->getName()}/version", $version);
     // Create upgrade file
     $setupNamspace = strtolower($this->getName()) . '_setup';
     $modulesTemplate = new Mtool_Codegen_Template('module_upgrader');
     $params = array('module_name' => $this->getName(), 'module' => $this->_moduleName, 'company_name' => $this->getCompanyName(), 'year' => date('Y'), 'class' => $config->get("global/resources/{$setupNamspace}/setup/class") ?: 'Mage_Core_Model_Resource_Setup');
     $modulesTemplate->setParams(array_merge($params, $this->_templateParams))->move($this->_moduleSqlDir . DIRECTORY_SEPARATOR . $setupNamspace, "mysql4-upgrade-{$currentVersion}-{$version}.php");
 }
Пример #2
0
 /**
  * Create class file
  * 
  * @param string $path in format: class_path_string 
  * @param string $template 
  * @param Mtool_Codegen_Entity_Module $module
  * @param array $params 
  * @return resulting class name
  */
 public function createClass($path, $template, $module, $params = array())
 {
     $pathSteps = $this->_ucPath(explode('_', $path));
     $className = implode('_', $pathSteps);
     $classFilename = array_pop($pathSteps) . '.php';
     // Create class dir under module
     $classDir = Mtool_Codegen_Filesystem::slash($module->getDir()) . $this->_folderName . DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, $pathSteps);
     Mtool_Codegen_Filesystem::mkdir($classDir);
     // Move class template file
     $classTemplate = new Mtool_Codegen_Template($template);
     $resultingClassName = "{$module->getName()}_{$this->_entityName}_{$className}";
     if (strlen('class ' . $resultingClassName) >= self::RECOMMENDED_ZEND_CODING_STANDARD_LINE_LENGTH) {
         $resultingClassName .= "\n   ";
     }
     $defaultParams = array('company_name' => $module->getCompanyName(), 'module_name' => $module->getModuleName(), 'class_name' => $resultingClassName, 'year' => date('Y'));
     $classTemplate->setParams(array_merge($defaultParams, $params, $module->getTemplateParams()));
     $classTemplate->move($classDir, $classFilename);
     return $resultingClassName;
 }