Example #1
0
 /**
  * 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 Zend_Tool_Framework_Client_Manifest());
     // setup the debug log
     if (!$this->_debugLogger instanceof Zend_Log) {
         require_once 'Zend/Log.php';
         require_once 'Zend/Log/Writer/Null.php';
         $this->_debugLogger = new Zend_Log(new Zend_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 Zend_Tool_Framework_Client_Interactive_InputInterface) {
         require_once 'Zend/Tool/Framework/Client/Interactive/InputHandler.php';
     }
     if ($this instanceof Zend_Tool_Framework_Client_Interactive_OutputInterface) {
         $this->_registry->getResponse()->setContentCallback(array($this, 'handleInteractiveOutput'));
     }
 }
Example #2
0
 /**
  * initialized() - This will initialize the client for use
  *
  */
 public function initialize()
 {
     // if its already initialized, no need to initialize again
     if ($this->_isInitialized) {
         return;
     }
     // this might look goofy, but this is setting up the
     // registry for dependency injection into the client
     $registry = new Zend_Tool_Framework_Registry();
     $registry->setClient($this);
     // NOTE: at this moment, $this->_registry should contain
     // the registry object
     // run any preInit
     $this->_preInit();
     // setup the debug log
     if (!$this->_debugLogger instanceof Zend_Log) {
         require_once 'Zend/Log.php';
         require_once 'Zend/Log/Writer/Null.php';
         $this->_debugLogger = new Zend_Log(new Zend_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 Zend_Tool_Framework_Client_Interactive_InputInterface) {
         require_once 'Zend/Tool/Framework/Client/Interactive/InputHandler.php';
     }
     if ($this instanceof Zend_Tool_Framework_Client_Interactive_OutputInterface) {
         $this->_registry->getResponse()->setContentCallback(array($this, 'handleInteractiveOutput'));
     }
 }
Example #3
0
 public function testAddManfestsWillPersistManifests()
 {
     $this->_repository->addManifest(new \ZendTest\Tool\Framework\Manifest\TestAsset\ManifestGoodOne());
     $this->_repository->addManifest(new \ZendTest\Tool\Framework\Manifest\TestAsset\ManifestGoodTwo());
     $this->assertEquals(2, count($this->_repository->getManifests()));
     $actionRepository = $this->_registry->getActionRepository();
     $actionRepository->process();
     $providerRepository = $this->_registry->getProviderRepository();
     $providerRepository->process();
     $actions = $actionRepository->getActions();
     $this->assertArrayHasKey('actionone', $actions);
     $this->assertArrayHasKey('actiontwo', $actions);
     $this->assertArrayHasKey('foo', $actions);
     $providers = $providerRepository->getProviders();
     $this->assertArrayHasKey('providerone', $providers);
     $this->assertArrayHasKey('providertwo', $providers);
 }
 /**
  * _processActionableMethods() - process all methods that can be called on this provider.
  *
  */
 protected function _processActionableMethods()
 {
     $specialtyRegex = '#(.*)(' . implode('|', $this->_specialties) . ')$#i';
     $methods = $this->_providerReflection->getMethods();
     $actionableMethods = array();
     foreach ($methods as $method) {
         $methodName = $method->getName();
         /**
          * the following will determine what methods are actually actionable
          * public, non-static, non-underscore prefixed, classes that dont
          * contain the name "
          */
         if (!$method->getDeclaringClass()->isInstantiable() || !$method->isPublic() || $methodName[0] == '_' || $method->isStatic() || in_array($methodName, array('getContextClasses', 'getName'))) {
             continue;
         }
         /**
          * check to see if the method was a required method by a Zend_Tool_* interface
          */
         foreach ($method->getDeclaringClass()->getInterfaces() as $methodDeclaringClassInterface) {
             if (strpos($methodDeclaringClassInterface->getName(), 'Zend_Tool_') === 0 && $methodDeclaringClassInterface->hasMethod($methodName)) {
                 continue 2;
             }
         }
         $actionableName = ucfirst($methodName);
         if (substr($actionableName, -6) == 'Action') {
             $actionableName = substr($actionableName, 0, -6);
         }
         $actionableMethods[$methodName]['methodName'] = $methodName;
         $matches = null;
         if (preg_match($specialtyRegex, $actionableName, $matches)) {
             $actionableMethods[$methodName]['actionName'] = $matches[1];
             $actionableMethods[$methodName]['specialty'] = $matches[2];
         } else {
             $actionableMethods[$methodName]['actionName'] = $actionableName;
             $actionableMethods[$methodName]['specialty'] = '_Global';
         }
         // get the action, and create non-existent actions when they dont exist (the true part below)
         $action = $this->_registry->getActionRepository()->getAction($actionableMethods[$methodName]['actionName']);
         if ($action == null) {
             $action = new Zend_Tool_Framework_Action_Base($actionableMethods[$methodName]['actionName']);
             $this->_registry->getActionRepository()->addAction($action);
         }
         $actionableMethods[$methodName]['action'] = $action;
         if (!in_array($actionableMethods[$methodName]['action'], $this->_actions)) {
             $this->_actions[] = $actionableMethods[$methodName]['action'];
         }
         $parameterInfo = array();
         $position = 1;
         foreach ($method->getParameters() as $parameter) {
             $currentParam = $parameter->getName();
             $parameterInfo[$currentParam]['position'] = $position++;
             $parameterInfo[$currentParam]['optional'] = $parameter->isOptional();
             $parameterInfo[$currentParam]['default'] = $parameter->isOptional() ? $parameter->getDefaultValue() : null;
             $parameterInfo[$currentParam]['name'] = $currentParam;
             $parameterInfo[$currentParam]['type'] = 'string';
             $parameterInfo[$currentParam]['description'] = null;
         }
         $matches = null;
         if (($docComment = $method->getDocComment()) != '' && preg_match_all('/@param\\s+(\\w+)+\\s+(\\$\\S+)\\s+(.*?)(?=(?:\\*\\s*@)|(?:\\*\\/))/s', $docComment, $matches)) {
             for ($i = 0; $i <= count($matches[0]) - 1; $i++) {
                 $currentParam = ltrim($matches[2][$i], '$');
                 if ($currentParam != '' && isset($parameterInfo[$currentParam])) {
                     $parameterInfo[$currentParam]['type'] = $matches[1][$i];
                     $descriptionSource = $matches[3][$i];
                     if ($descriptionSource != '') {
                         $parameterInfo[$currentParam]['description'] = trim($descriptionSource);
                     }
                 }
             }
         }
         $actionableMethods[$methodName]['parameterInfo'] = $parameterInfo;
     }
     $this->_actionableMethods = $actionableMethods;
 }