/** * load() - called by the client initialize routine to load files * */ public function load() { $this->_retrievedFiles = $this->getRetrievedFiles(); $this->_loadedClasses = array(); $manifestRegistry = $this->_registry->getManifestRepository(); $providerRegistry = $this->_registry->getProviderRepository(); $loadedClasses = array(); // loop through files and find the classes declared by loading the file foreach ($this->_retrievedFiles as $file) { $classesLoadedBefore = get_declared_classes(); $oldLevel = error_reporting(E_ALL | ~E_STRICT); // remove strict so that other packages wont throw warnings // should we lint the files here? i think so include_once $file; error_reporting($oldLevel); // restore old error level $classesLoadedAfter = get_declared_classes(); $loadedClasses = array_merge($loadedClasses, array_diff($classesLoadedAfter, $classesLoadedBefore)); } // loop through the loaded classes and ensure that foreach ($loadedClasses as $loadedClass) { // reflect class to see if its something we want to load $reflectionClass = new ReflectionClass($loadedClass); if ($reflectionClass->implementsInterface('Zend_Tool_Framework_Manifest_Interface') && !$reflectionClass->isAbstract()) { $manifestRegistry->addManifest($reflectionClass->newInstance()); $this->_loadedClasses[] = $loadedClass; } if ($reflectionClass->implementsInterface('Zend_Tool_Framework_Provider_Interface') && !$reflectionClass->isAbstract() && !$providerRegistry->hasProvider($reflectionClass->getName(), false)) { $providerRegistry->addProvider($reflectionClass->newInstance()); $this->_loadedClasses[] = $loadedClass; } } return $this->_loadedClasses; }
public function load() { $manifestRegistry = $this->_registry->getManifestRepository(); $providerRegistry = $this->_registry->getProviderRepository(); $loadedClasses = array(); // loop through the loaded classes and ensure that foreach ($this->_classesToLoad as $class) { if (!class_exists($class)) { Zend_Loader::loadClass($class); } // reflect class to see if its something we want to load $reflectionClass = new ReflectionClass($class); if ($this->_isManifestImplementation($reflectionClass)) { $manifestRegistry->addManifest($reflectionClass->newInstance()); $loadedClasses[] = $class; } if ($this->_isProviderImplementation($reflectionClass)) { $providerRegistry->addProvider($reflectionClass->newInstance()); $loadedClasses[] = $class; } } return $loadedClasses; }
public function load() { $manifestRegistry = $this->_registry->getManifestRepository(); $providerRegistry = $this->_registry->getProviderRepository(); $loadedClasses = array(); // loop through the loaded classes and ensure that foreach ($this->_classesToLoad as $class) { if (!class_exists($class) && !$this->loader->autoload($class) ) { throw new Exception\RuntimeException(sprintf('Unable to resolve class "%s"', $class)); } // reflect class to see if its something we want to load $reflectionClass = new \ReflectionClass($class); if ($this->_isManifestImplementation($reflectionClass)) { $manifestRegistry->addManifest($reflectionClass->newInstance()); $loadedClasses[] = $class; } if ($this->_isProviderImplementation($reflectionClass)) { $providerRegistry->addProvider($reflectionClass->newInstance()); $loadedClasses[] = $class; } } return $loadedClasses; }