/** * init() * * @return \Zend\Tool\Project\Context\Zf\ActionMethod */ public function init() { $this->_actionName = $this->_resource->getAttribute('actionName'); $this->_resource->setAppendable(false); $this->_controllerResource = $this->_resource->getParentResource(); if (!$this->_controllerResource->getContext() instanceof ControllerFile) { throw new Context\Exception('ActionMethod must be a sub resource of a ControllerFile'); } // make the ControllerFile node appendable so we can tack on the actionMethod. $this->_resource->getParentResource()->setAppendable(true); $this->_controllerPath = $this->_controllerResource->getContext()->getPath(); return $this; }
public function getApplicationInstance() { if ($this->_applicationInstance == null) { if ($this->_applicationConfigFile->getContext()->exists()) { define('APPLICATION_PATH', $this->_applicationDirectory->getPath()); $applicationOptions = array(); $applicationOptions['config'] = $this->_applicationConfigFile->getPath(); $this->_applicationInstance = new \Zend\Application\Application('development', $applicationOptions); } } return $this->_applicationInstance; }
/** * init() * * @return \Zend\Tool\Project\Context\Filesystem\AbstractFilesystem */ public function init() { $parentBaseDirectory = $this->_resource->getParentResource()->getContext()->getPath(); $this->_baseDirectory = $parentBaseDirectory; return $this; }
/** * createResource() * * Method to create a resource with a given context with specific attributes * * @param string $context * @param array $attributes * @return \Zend\Tool\Project\Profile\Resource */ public function createResource($context, array $attributes = array()) { if (is_string($context)) { $contextRegistry = \Zend\Tool\Project\Context\Repository::getInstance(); if ($contextRegistry->hasContext($context)) { $context = $contextRegistry->getContext($context); } else { throw new Profile\Exception('Context by name ' . $context . ' was not found in the context registry.'); } } elseif (!$context instanceof \Zend\Tool\Project\Context) { throw new Profile\Exception('Context must be of type string or Zend_Tool_Project_Context_Interface.'); } $newResource = new Profile\Resource($context); if ($attributes) { $newResource->setAttributes($attributes); } /** * Interesting logic here: * * First set the parentResource (this will also be done inside append). This will allow * the initialization routine to change the appendability of the parent resource. This * is important to allow specific resources to be appendable by very specific sub-resources. */ $newResource->setParentResource($this); $newResource->initializeContext(); $this->append($newResource); return $newResource; }
/** * _unserializeRecurser() * * This method will be used to traverse the depths of the structure * as needed to *unserialize* the profile from an xmlIterator * * @param SimpleXMLIterator $xmlIterator * @param \Zend\Tool\Project\Profile\Resource $resource */ protected function _unserializeRecurser(\SimpleXMLIterator $xmlIterator, Resource $resource = null) { foreach ($xmlIterator as $resourceName => $resourceData) { $contextName = $resourceName; $subResource = new Resource($contextName); $subResource->setProfile($this->_profile); if ($resourceAttributes = $resourceData->attributes()) { $attributes = array(); foreach ($resourceAttributes as $attrName => $attrValue) { $attributes[$attrName] = (string) $attrValue; } $subResource->setAttributes($attributes); } if ($resource) { $resource->append($subResource, false); } else { $this->_profile->append($subResource); } if ($this->_contextRepository->isOverwritableContext($contextName) == false) { $subResource->initializeContext(); } if ($xmlIterator->hasChildren()) { self::_unserializeRecurser($xmlIterator->getChildren(), $subResource); } } }