web/lib/Zend/Loader/Autoloader.php
changeset 807 877f952ae2bd
parent 207 621fa6caec0c
child 1230 68c69c656a2c
equal deleted inserted replaced
805:5e7a0fedabdf 807:877f952ae2bd
    13  * to license@zend.com so we can send you a copy immediately.
    13  * to license@zend.com so we can send you a copy immediately.
    14  *
    14  *
    15  * @category   Zend
    15  * @category   Zend
    16  * @package    Zend_Loader
    16  * @package    Zend_Loader
    17  * @subpackage Autoloader
    17  * @subpackage Autoloader
    18  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
    18  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    19  * @version    $Id: Autoloader.php 23161 2010-10-19 16:08:36Z matthew $
    19  * @version    $Id: Autoloader.php 25024 2012-07-30 15:08:15Z rob $
    20  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    20  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    21  */
    21  */
    22 
    22 
    23 /** Zend_Loader */
    23 /** Zend_Loader */
    24 require_once 'Zend/Loader.php';
    24 require_once 'Zend/Loader.php';
    27  * Autoloader stack and namespace autoloader
    27  * Autoloader stack and namespace autoloader
    28  *
    28  *
    29  * @uses       Zend_Loader_Autoloader
    29  * @uses       Zend_Loader_Autoloader
    30  * @package    Zend_Loader
    30  * @package    Zend_Loader
    31  * @subpackage Autoloader
    31  * @subpackage Autoloader
    32  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
    32  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    33  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    33  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    34  */
    34  */
    35 class Zend_Loader_Autoloader
    35 class Zend_Loader_Autoloader
    36 {
    36 {
    37     /**
    37     /**
   333         foreach (array_keys($this->_namespaceAutoloaders) as $ns) {
   333         foreach (array_keys($this->_namespaceAutoloaders) as $ns) {
   334             if ('' == $ns) {
   334             if ('' == $ns) {
   335                 continue;
   335                 continue;
   336             }
   336             }
   337             if (0 === strpos($class, $ns)) {
   337             if (0 === strpos($class, $ns)) {
   338                 $namespace   = $ns;
   338                 if ((false === $namespace) || (strlen($ns) > strlen($namespace))) {
   339                 $autoloaders = $autoloaders + $this->getNamespaceAutoloaders($ns);
   339                     $namespace = $ns;
   340                 break;
   340                     $autoloaders = $this->getNamespaceAutoloaders($ns);
       
   341                 }
   341             }
   342             }
   342         }
   343         }
   343 
   344 
   344         // Add internal namespaced autoloader
   345         // Add internal namespaced autoloader
   345         foreach ($this->getRegisteredNamespaces() as $ns) {
   346         foreach ($this->getRegisteredNamespaces() as $ns) {
   349                 break;
   350                 break;
   350             }
   351             }
   351         }
   352         }
   352 
   353 
   353         // Add non-namespaced autoloaders
   354         // Add non-namespaced autoloaders
   354         $autoloaders = $autoloaders + $this->getNamespaceAutoloaders('');
   355         $autoloadersNonNamespace = $this->getNamespaceAutoloaders('');
       
   356         if (count($autoloadersNonNamespace)) {
       
   357             foreach ($autoloadersNonNamespace as $ns) {
       
   358                 $autoloaders[] = $ns;
       
   359             }
       
   360             unset($autoloadersNonNamespace);
       
   361         }
   355 
   362 
   356         // Add fallback autoloader
   363         // Add fallback autoloader
   357         if (!$namespace && $this->isFallbackAutoloader()) {
   364         if (!$namespace && $this->isFallbackAutoloader()) {
   358             $autoloaders[] = $this->_internalAutoloader;
   365             $autoloaders[] = $this->_internalAutoloader;
   359         }
   366         }