Viewing file: ProjectProviderFile.php (4.01 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /** * Zend Framework * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://framework.zend.com/license/new-bsd * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@zend.com so we can send you a copy immediately. * * @category Zend * @package Zend_Tool * @subpackage Framework * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @version $Id: ProjectProviderFile.php 18951 2009-11-12 16:26:19Z alexander $ */
/** * @see Zend_Tool_Project_Context_Filesystem_File */ require_once 'Zend/Tool/Project/Context/Filesystem/File.php';
/** * @see Zend_CodeGenerator_Php_File */ require_once 'Zend/CodeGenerator/Php/File.php';
/** * This class is the front most class for utilizing Zend_Tool_Project * * A profile is a hierarchical set of resources that keep track of * items within a specific project. * * @category Zend * @package Zend_Tool * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ class Zend_Tool_Project_Context_Zf_ProjectProviderFile extends Zend_Tool_Project_Context_Filesystem_File {
/** * @var string */ protected $_projectProviderName = null;
/** * @var array */ protected $_actionNames = array();
/** * init() * * @return Zend_Tool_Project_Context_Zf_ProjectProviderFile */ public function init() {
$this->_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(); }
}
|