diff -r 000000000000 -r 4eba9c11703f web/Zend/Tool/Project/Context/Zf/ProjectProviderFile.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/Zend/Tool/Project/Context/Zf/ProjectProviderFile.php Mon Dec 13 18:29:26 2010 +0100 @@ -0,0 +1,152 @@ +_projectProviderName = $this->_resource->getAttribute('projectProviderName'); + $this->_actionNames = $this->_resource->getAttribute('actionNames'); + $this->_filesystemName = ucfirst($this->_projectProviderName) . 'Provider.php'; + + if (strpos($this->_actionNames, ',')) { + $this->_actionNames = explode(',', $this->_actionNames); + } else { + $this->_actionNames = ($this->_actionNames) ? array($this->_actionNames) : array(); + } + + parent::init(); + return $this; + } + + /** + * getPersistentAttributes() + * + * @return array + */ + public function getPersistentAttributes() + { + return array( + 'projectProviderName' => $this->getProjectProviderName(), + 'actionNames' => implode(',', $this->_actionNames) + ); + } + + /** + * getName() + * + * @return string + */ + public function getName() + { + return 'ProjectProviderFile'; + } + + /** + * getProjectProviderName() + * + * @return string + */ + public function getProjectProviderName() + { + return $this->_projectProviderName; + } + + /** + * getContents() + * + * @return string + */ + public function getContents() + { + + $filter = new Zend_Filter_Word_DashToCamelCase(); + + $className = $filter->filter($this->_projectProviderName) . 'Provider'; + + $class = new Zend_CodeGenerator_Php_Class(array( + 'name' => $className, + 'extendedClass' => 'Zend_Tool_Project_Provider_Abstract' + )); + + $methods = array(); + foreach ($this->_actionNames as $actionName) { + $methods[] = new Zend_CodeGenerator_Php_Method(array( + 'name' => $actionName, + 'body' => ' /** @todo Implementation */' + )); + } + + if ($methods) { + $class->setMethods($methods); + } + + $codeGenFile = new Zend_CodeGenerator_Php_File(array( + 'requiredFiles' => array( + 'Zend/Tool/Project/Provider/Abstract.php', + 'Zend/Tool/Project/Provider/Exception.php' + ), + 'classes' => array($class) + )); + + return $codeGenFile->generate(); + } + +}