/** * initialized() - This will initialize the client for use * */ public function initialize() { // if its already initialized, no need to initialize again if ($this->_isInitialized) { return; } // run any preInit $this->_preInit(); $manifest = $this->_registry->getManifestRepository(); $manifest->addManifest(new Manifest()); // setup the debug log if (!$this->_debugLogger instanceof Log\Logger) { $this->_debugLogger = new Log\Logger(new Log\Writer\Null()); } // let the loader load, then the repositories process whats been loaded $this->_registry->getLoader()->load(); // process the action repository $this->_registry->getActionRepository()->process(); // process the provider repository $this->_registry->getProviderRepository()->process(); // process the manifest repository $this->_registry->getManifestRepository()->process(); if ($this instanceof Interactive\InteractiveOutput) { $this->_registry->getResponse()->setContentCallback(array($this, 'handleInteractiveOutput')); } }
/** * setRegistry() * * @param \Zend\Tool\Framework\Registry $registry * @return \Zend\Tool\Framework\Client\Console\ArgumentParser */ public function setRegistry(Registry $registry) { // get the client registry $this->_registry = $registry; // set manifest repository, request, response for easy access $this->_manifestRepository = $this->_registry->getManifestRepository(); $this->_request = $this->_registry->getRequest(); $this->_response = $this->_registry->getResponse(); return $this; }
/** * _respondWithSystemInformation() * * @param string $providerNameFilter * @param string $actionNameFilter * @param bool $includeAllSpecialties * @return \Zend\Tool\Framework\Client\Console\HelpSystem */ protected function _respondWithSystemInformation($providerNameFilter = null, $actionNameFilter = null, $includeAllSpecialties = false) { $manifest = $this->_registry->getManifestRepository(); $providerMetadatasSearch = array('type' => 'Tool', 'name' => 'providerName', 'clientName' => 'console'); if (is_string($providerNameFilter)) { $providerMetadatasSearch = array_merge($providerMetadatasSearch, array('providerName' => $providerNameFilter)); } $actionMetadatasSearch = array('type' => 'Tool', 'name' => 'actionName', 'clientName' => 'console'); if (is_string($actionNameFilter)) { $actionMetadatasSearch = array_merge($actionMetadatasSearch, array('actionName' => $actionNameFilter)); } // get the metadata's for the things to display $displayProviderMetadatas = $manifest->getMetadatas($providerMetadatasSearch); $displayActionMetadatas = $manifest->getMetadatas($actionMetadatasSearch); // create index of actionNames for ($i = 0; $i < count($displayActionMetadatas); $i++) { $displayActionNames[] = $displayActionMetadatas[$i]->getActionName(); } foreach ($displayProviderMetadatas as $providerMetadata) { $providerNameDisplayed = false; $providerName = $providerMetadata->getProviderName(); $providerSignature = $providerMetadata->getReference(); foreach ($providerSignature->getActions() as $actionInfo) { $actionName = $actionInfo->getName(); // check to see if this action name is valid if (($foundActionIndex = array_search($actionName, $displayActionNames)) === false) { continue; } else { $actionMetadata = $displayActionMetadatas[$foundActionIndex]; } $specialtyMetadata = $manifest->getMetadata(array('type' => 'Tool', 'name' => 'specialtyName', 'providerName' => $providerName, 'specialtyName' => '_Global', 'clientName' => 'console')); // lets do the main _Global action first $actionableGlobalLongParamMetadata = $manifest->getMetadata(array('type' => 'Tool', 'name' => 'actionableMethodLongParams', 'providerName' => $providerName, 'specialtyName' => '_Global', 'actionName' => $actionName, 'clientName' => 'console')); $actionableGlobalMetadatas = $manifest->getMetadatas(array('type' => 'Tool', 'name' => 'actionableMethodLongParams', 'providerName' => $providerName, 'actionName' => $actionName, 'clientName' => 'console')); if ($actionableGlobalLongParamMetadata) { if (!$providerNameDisplayed) { $this->_respondWithProviderName($providerMetadata); $providerNameDisplayed = true; } $this->_respondWithCommand($providerMetadata, $actionMetadata, $specialtyMetadata, $actionableGlobalLongParamMetadata); $actionIsGlobal = true; } else { $actionIsGlobal = false; } // check for providers without a _Global action $isSingleSpecialProviderAction = false; if (!$actionIsGlobal && count($actionableGlobalMetadatas) == 1) { $isSingleSpecialProviderAction = true; $this->_respondWithProviderName($providerMetadata); $providerNameDisplayed = true; } if ($includeAllSpecialties || $isSingleSpecialProviderAction) { foreach ($providerSignature->getSpecialties() as $specialtyName) { if ($specialtyName == '_Global') { continue; } $specialtyMetadata = $manifest->getMetadata(array('type' => 'Tool', 'name' => 'specialtyName', 'providerName' => $providerMetadata->getProviderName(), 'specialtyName' => $specialtyName, 'clientName' => 'console')); $actionableSpecialtyLongMetadata = $manifest->getMetadata(array('type' => 'Tool', 'name' => 'actionableMethodLongParams', 'providerName' => $providerMetadata->getProviderName(), 'specialtyName' => $specialtyName, 'actionName' => $actionName, 'clientName' => 'console')); if ($actionableSpecialtyLongMetadata) { $this->_respondWithCommand($providerMetadata, $actionMetadata, $specialtyMetadata, $actionableSpecialtyLongMetadata); } } } // reset the special flag for single provider action with specialty $isSingleSpecialProviderAction = false; if (!$includeAllSpecialties && count($actionableGlobalMetadatas) > 1) { $this->_response->appendContent(' Note: There are specialties, use ', array('color' => 'yellow', 'separator' => false)); $this->_response->appendContent('zf ' . $actionMetadata->getValue() . ' ' . $providerMetadata->getValue() . '.?', array('color' => 'cyan', 'separator' => false)); $this->_response->appendContent(' to get specific help on them.', array('color' => 'yellow')); } } if ($providerNameDisplayed) { $this->_response->appendContent(null, array('separator' => true)); } } return $this; }