/** * Internal routine for parsing the provider part of the command line arguments * * @return null */ protected function _parseProviderPart() { // get the cli "word" as the provider name from command line $consoleProviderFull = array_shift($this->_argumentsWorking); $consoleSpecialtyName = '_global'; // if there is notation for specialties? If so, break them up if (strstr($consoleProviderFull, '.')) { list($consoleProviderName, $consoleSpecialtyName) = explode('.', $consoleProviderFull); } else { $consoleProviderName = $consoleProviderFull; } if ($consoleProviderName == '?') { $this->_help = true; return; } $providerSearchCriteria = array('type' => 'Tool', 'name' => 'providerName', 'value' => $consoleProviderName, 'clientName' => 'console'); // get the cli provider names from the manifest $providerMetadata = $this->_manifestRepository->getMetadata($providerSearchCriteria); // check for normalized names as well (all lower, no separators) if (!$providerMetadata) { $providerSearchCriteria['name'] = 'normalizedProviderName'; $providerSearchCriteria['value'] = strtolower(str_replace(array('-', '_'), '', $consoleProviderName)); $providerSearchCriteria['clientName'] = 'all'; $providerMetadata = $this->_manifestRepository->getMetadata($providerSearchCriteria); } if (!$providerMetadata) { require_once 'Zend/Tool/Framework/Client/Exception.php'; throw new Zend_Tool_Framework_Client_Exception('Provider \'' . $consoleProviderFull . '\' is not a valid provider.'); } $this->_helpKnownProvider = true; $this->_request->setProviderName($providerMetadata->getProviderName()); if ($consoleSpecialtyName == '?') { $this->_help = true; return; } $providerSpecialtySearchCriteria = array('type' => 'Tool', 'name' => 'specialtyName', 'value' => $consoleSpecialtyName, 'providerName' => $providerMetadata->getProviderName(), 'clientName' => 'console'); $providerSpecialtyMetadata = $this->_manifestRepository->getMetadata($providerSpecialtySearchCriteria); if (!$providerSpecialtyMetadata) { $providerSpecialtySearchCriteria['name'] = 'normalizedSpecialtyName'; $providerSpecialtySearchCriteria['value'] = strtolower(str_replace(array('-', '_'), '', $consoleSpecialtyName)); $providerSpecialtySearchCriteria['clientName'] = 'all'; $providerSpecialtyMetadata = $this->_manifestRepository->getMetadata($providerSpecialtySearchCriteria); } if (!$providerSpecialtyMetadata) { require_once 'Zend/Tool/Framework/Client/Exception.php'; throw new Zend_Tool_Framework_Client_Exception('Provider \'' . $consoleSpecialtyName . '\' is not a valid specialty.'); } $this->_helpKnownSpecialty = true; $this->_request->setSpecialtyName($providerSpecialtyMetadata->getSpecialtyName()); return; }
public function testProviderNameGetterAndSetter() { $this->_request->setProviderName('foo'); $this->assertEquals('foo', $this->_request->getProviderName()); }