diff options
Diffstat (limited to 'libs/Zend/Loader/Autoloader/Resource.php')
-rw-r--r-- | libs/Zend/Loader/Autoloader/Resource.php | 141 |
1 files changed, 60 insertions, 81 deletions
diff --git a/libs/Zend/Loader/Autoloader/Resource.php b/libs/Zend/Loader/Autoloader/Resource.php index cd0a7fe7fc..15ae74c9a0 100644 --- a/libs/Zend/Loader/Autoloader/Resource.php +++ b/libs/Zend/Loader/Autoloader/Resource.php @@ -15,21 +15,21 @@ * @category Zend * @package Zend_Loader * @subpackage Autoloader - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @version $Id: Resource.php 20096 2010-01-06 02:05:09Z bkarwin $ + * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) + * @version $Id: Resource.php 18173 2009-09-17 15:35:05Z padraic $ * @license http://framework.zend.com/license/new-bsd New BSD License */ /** Zend_Loader_Autoloader_Interface */ -// require_once 'Zend/Loader/Autoloader/Interface.php'; +require_once 'Zend/Loader/Autoloader/Interface.php'; /** * Resource loader - * + * * @uses Zend_Loader_Autoloader_Interface * @package Zend_Loader * @subpackage Autoloader - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interface @@ -61,7 +61,7 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Constructor - * + * * @param array|Zend_Config $options Configuration options for resource autoloader * @return void */ @@ -71,7 +71,7 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac $options = $options->toArray(); } if (!is_array($options)) { - // require_once 'Zend/Loader/Exception.php'; + require_once 'Zend/Loader/Exception.php'; throw new Zend_Loader_Exception('Options must be passed to resource loader constructor'); } @@ -81,7 +81,7 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac if ((null === $namespace) || (null === $this->getBasePath()) ) { - // require_once 'Zend/Loader/Exception.php'; + require_once 'Zend/Loader/Exception.php'; throw new Zend_Loader_Exception('Resource loader requires both a namespace and a base path for initialization'); } @@ -94,7 +94,7 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Overloading: methods * - * Allow retrieving concrete resource object instances using 'get<Resourcename>()' + * Allow retrieving concrete resource object instances using 'get<Resourcename>()' * syntax. Example: * <code> * $loader = new Zend_Loader_Autoloader_Resource(array( @@ -105,9 +105,9 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac * * $foo = $loader->getModel('Foo'); // get instance of Stuff_Model_Foo class * </code> - * - * @param string $method - * @param array $args + * + * @param string $method + * @param array $args * @return mixed * @throws Zend_Loader_Exception if method not beginning with 'get' or not matching a valid resource type is called */ @@ -116,28 +116,28 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac if ('get' == substr($method, 0, 3)) { $type = strtolower(substr($method, 3)); if (!$this->hasResourceType($type)) { - // require_once 'Zend/Loader/Exception.php'; + require_once 'Zend/Loader/Exception.php'; throw new Zend_Loader_Exception("Invalid resource type $type; cannot load resource"); } if (empty($args)) { - // require_once 'Zend/Loader/Exception.php'; + require_once 'Zend/Loader/Exception.php'; throw new Zend_Loader_Exception("Cannot load resources; no resource specified"); } $resource = array_shift($args); return $this->load($resource, $type); } - // require_once 'Zend/Loader/Exception.php'; + require_once 'Zend/Loader/Exception.php'; throw new Zend_Loader_Exception("Method '$method' is not supported"); } /** - * Helper method to calculate the correct class path - * - * @param string $class - * @return False if not matched other wise the correct path + * Attempt to autoload a class + * + * @param string $class + * @return mixed False if not matched, otherwise result if include operation */ - public function getClassPath($class) + public function autoload($class) { $segments = explode('_', $class); $namespaceTopLevel = $this->getNamespace(); @@ -171,36 +171,15 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac return false; } - $final = substr($class, strlen($lastMatch) + 1); + $final = substr($class, strlen($lastMatch)); $path = $this->_components[$lastMatch]; - $classPath = $path . '/' . str_replace('_', '/', $final) . '.php'; - - if (Zend_Loader::isReadable($classPath)) { - return $classPath; - } - - return false; - } - - /** - * Attempt to autoload a class - * - * @param string $class - * @return mixed False if not matched, otherwise result if include operation - */ - public function autoload($class) - { - $classPath = $this->getClassPath($class); - if (false !== $classPath) { - return include $classPath; - } - return false; + return include $path . '/' . str_replace('_', '/', $final) . '.php'; } /** * Set class state from options - * - * @param array $options + * + * @param array $options * @return Zend_Loader_Autoloader_Resource */ public function setOptions(array $options) @@ -217,8 +196,8 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Set namespace that this autoloader handles - * - * @param string $namespace + * + * @param string $namespace * @return Zend_Loader_Autoloader_Resource */ public function setNamespace($namespace) @@ -229,7 +208,7 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Get namespace this autoloader handles - * + * * @return string */ public function getNamespace() @@ -239,8 +218,8 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Set base path for this set of resources - * - * @param string $path + * + * @param string $path * @return Zend_Loader_Autoloader_Resource */ public function setBasePath($path) @@ -248,10 +227,10 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac $this->_basePath = (string) $path; return $this; } - + /** * Get base path to this set of resources - * + * * @return string */ public function getBasePath() @@ -261,7 +240,7 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Add resource type - * + * * @param string $type identifier for the resource type being loaded * @param string $path path relative to resource base path containing the resource types * @param null|string $namespace sub-component namespace to append to base namespace that qualifies this resource type @@ -272,7 +251,7 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac $type = strtolower($type); if (!isset($this->_resourceTypes[$type])) { if (null === $namespace) { - // require_once 'Zend/Loader/Exception.php'; + require_once 'Zend/Loader/Exception.php'; throw new Zend_Loader_Exception('Initial definition of a resource type must include a namespace'); } $namespaceTopLevel = $this->getNamespace(); @@ -282,7 +261,7 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac ); } if (!is_string($path)) { - // require_once 'Zend/Loader/Exception.php'; + require_once 'Zend/Loader/Exception.php'; throw new Zend_Loader_Exception('Invalid path specification provided; must be string'); } $this->_resourceTypes[$type]['path'] = $this->getBasePath() . '/' . rtrim($path, '\/'); @@ -295,10 +274,10 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Add multiple resources at once * - * $types should be an associative array of resource type => specification - * pairs. Each specification should be an associative array containing - * minimally the 'path' key (specifying the path relative to the resource - * base path) and optionally the 'namespace' key (indicating the subcomponent + * $types should be an associative array of resource type => specification + * pairs. Each specification should be an associative array containing + * minimally the 'path' key (specifying the path relative to the resource + * base path) and optionally the 'namespace' key (indicating the subcomponent * namespace to append to the resource namespace). * * As an example: @@ -314,19 +293,19 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac * ), * )); * </code> - * - * @param array $types + * + * @param array $types * @return Zend_Loader_Autoloader_Resource */ public function addResourceTypes(array $types) { foreach ($types as $type => $spec) { if (!is_array($spec)) { - // require_once 'Zend/Loader/Exception.php'; + require_once 'Zend/Loader/Exception.php'; throw new Zend_Loader_Exception('addResourceTypes() expects an array of arrays'); } if (!isset($spec['path'])) { - // require_once 'Zend/Loader/Exception.php'; + require_once 'Zend/Loader/Exception.php'; throw new Zend_Loader_Exception('addResourceTypes() expects each array to include a paths element'); } $paths = $spec['path']; @@ -341,9 +320,9 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Overwrite existing and set multiple resource types at once - * + * * @see Zend_Loader_Autoloader_Resource::addResourceTypes() - * @param array $types + * @param array $types * @return Zend_Loader_Autoloader_Resource */ public function setResourceTypes(array $types) @@ -354,7 +333,7 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Retrieve resource type mappings - * + * * @return array */ public function getResourceTypes() @@ -364,8 +343,8 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Is the requested resource type defined? - * - * @param string $type + * + * @param string $type * @return bool */ public function hasResourceType($type) @@ -375,8 +354,8 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Remove the requested resource type - * - * @param string $type + * + * @param string $type * @return Zend_Loader_Autoloader_Resource */ public function removeResourceType($type) @@ -391,7 +370,7 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Clear all resource types - * + * * @return Zend_Loader_Autoloader_Resource */ public function clearResourceTypes() @@ -403,8 +382,8 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Set default resource type to use when calling load() - * - * @param string $type + * + * @param string $type * @return Zend_Loader_Autoloader_Resource */ public function setDefaultResourceType($type) @@ -417,7 +396,7 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Get default resource type to use when calling load() - * + * * @return string|null */ public function getDefaultResourceType() @@ -428,12 +407,12 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac /** * Object registry and factory * - * Loads the requested resource of type $type (or uses the default resource - * type if none provided). If the resource has been loaded previously, + * Loads the requested resource of type $type (or uses the default resource + * type if none provided). If the resource has been loaded previously, * returns the previous instance; otherwise, instantiates it. - * - * @param string $resource - * @param string $type + * + * @param string $resource + * @param string $type * @return object * @throws Zend_Loader_Exception if resource type not specified or invalid */ @@ -442,12 +421,12 @@ class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interfac if (null === $type) { $type = $this->getDefaultResourceType(); if (empty($type)) { - // require_once 'Zend/Loader/Exception.php'; + require_once 'Zend/Loader/Exception.php'; throw new Zend_Loader_Exception('No resource type specified'); } } if (!$this->hasResourceType($type)) { - // require_once 'Zend/Loader/Exception.php'; + require_once 'Zend/Loader/Exception.php'; throw new Zend_Loader_Exception('Invalid resource type specified'); } $namespace = $this->_resourceTypes[$type]['namespace']; |