equal
deleted
inserted
replaced
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: Resource.php 20096 2010-01-06 02:05:09Z bkarwin $ |
19 * @version $Id: Resource.php 24593 2012-01-05 20:35:02Z matthew $ |
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_Autoloader_Interface */ |
23 /** Zend_Loader_Autoloader_Interface */ |
24 require_once 'Zend/Loader/Autoloader/Interface.php'; |
24 require_once 'Zend/Loader/Autoloader/Interface.php'; |
27 * Resource loader |
27 * Resource loader |
28 * |
28 * |
29 * @uses Zend_Loader_Autoloader_Interface |
29 * @uses Zend_Loader_Autoloader_Interface |
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_Resource implements Zend_Loader_Autoloader_Interface |
35 class Zend_Loader_Autoloader_Resource implements Zend_Loader_Autoloader_Interface |
36 { |
36 { |
37 /** |
37 /** |
86 } |
86 } |
87 |
87 |
88 if (!empty($namespace)) { |
88 if (!empty($namespace)) { |
89 $namespace .= '_'; |
89 $namespace .= '_'; |
90 } |
90 } |
|
91 require_once 'Zend/Loader/Autoloader.php'; |
91 Zend_Loader_Autoloader::getInstance()->unshiftAutoloader($this, $namespace); |
92 Zend_Loader_Autoloader::getInstance()->unshiftAutoloader($this, $namespace); |
92 } |
93 } |
93 |
94 |
94 /** |
95 /** |
95 * Overloading: methods |
96 * Overloading: methods |
142 $segments = explode('_', $class); |
143 $segments = explode('_', $class); |
143 $namespaceTopLevel = $this->getNamespace(); |
144 $namespaceTopLevel = $this->getNamespace(); |
144 $namespace = ''; |
145 $namespace = ''; |
145 |
146 |
146 if (!empty($namespaceTopLevel)) { |
147 if (!empty($namespaceTopLevel)) { |
147 $namespace = array_shift($segments); |
148 $namespace = array(); |
|
149 $topLevelSegments = count(explode('_', $namespaceTopLevel)); |
|
150 for ($i = 0; $i < $topLevelSegments; $i++) { |
|
151 $namespace[] = array_shift($segments); |
|
152 } |
|
153 $namespace = implode('_', $namespace); |
148 if ($namespace != $namespaceTopLevel) { |
154 if ($namespace != $namespaceTopLevel) { |
149 // wrong prefix? we're done |
155 // wrong prefix? we're done |
150 return false; |
156 return false; |
151 } |
157 } |
152 } |
158 } |
203 * @param array $options |
209 * @param array $options |
204 * @return Zend_Loader_Autoloader_Resource |
210 * @return Zend_Loader_Autoloader_Resource |
205 */ |
211 */ |
206 public function setOptions(array $options) |
212 public function setOptions(array $options) |
207 { |
213 { |
|
214 // Set namespace first, see ZF-10836 |
|
215 if (isset($options['namespace'])) { |
|
216 $this->setNamespace($options['namespace']); |
|
217 unset($options['namespace']); |
|
218 } |
|
219 |
208 $methods = get_class_methods($this); |
220 $methods = get_class_methods($this); |
209 foreach ($options as $key => $value) { |
221 foreach ($options as $key => $value) { |
210 $method = 'set' . ucfirst($key); |
222 $method = 'set' . ucfirst($key); |
211 if (in_array($method, $methods)) { |
223 if (in_array($method, $methods)) { |
212 $this->$method($value); |
224 $this->$method($value); |