require_once "Zend/Loader/Autoloader.php";Zend_Loader_Autoloader::getInstance();默认情况下,可以加载命名空间前缀为"Zend_"或 "ZendX_"的任何类,只要确保已经指定include_path。
require_once "Zend/Loader/Autoloader.php";$loader = Zend_Loader_Autoloader::getInstance();$loader->registerNamespace("Foo_");$loader->registerNamespace(array("Foo_", "Bar_"));或者,你可以把Zend_Loader_Autoloader作为一个“备用”自动加载器。这意味着如果命名空间无论是否定义,都会尝试自动加载。
$loader->setFallbackAutoloader(true);(注意:这种方式是不推荐的,尽量不要使用)。
$autoloader->suppressNotFoundWarnings(true);选择一个Zend Framework的版本
$autoloader->setZfPath($path, "latest");
$autoloader->setZfPath($path, "1.8");
$autoloader->setZfPath($path, "1.7.7");也可以使用配置文件
[production]autoloaderZfPath = "path/to/ZendFramework"autoloaderZfVersion = "1.7.7"[qa]autoloaderZfVersion = "1.8"[development]autoloaderZfVersion = "latest"Autoloader接口
interface Zend_Loader_Autoloader_Interface{public function autoload($class);}如果您希望在Zend Framework中使用自定义的自动加载器,可以使用 Zend_Loader_Autoloader的 pushAutoloader()和unshiftAutoloader()方法。// Append function "my_autoloader" to the stack,// to manage classes with the prefix "My_":$loader->pushAutoloader("my_autoloader", "My_");// Prepend static method Foo_Loader::autoload() to the stack,// to manage classes with the prefix "Foo_":$loader->unshiftAutoloader(array("Foo_Loader", "autoload"), "Foo_");// Assume Foo_Autoloader implements Zend_Loader_Autoloader_Interface:$foo = new Foo_Autoloader();$autoloader->pushAutoloader($foo, "Foo_");Zend_Loader_Autoloader的相关方法
| Method | Return Value | Parameters | Description |
|---|---|---|---|
| getInstance() | Zend_Loader_Autoloader | N/A | 获取实例 |
| resetInstance() | void | N/A | 重置Zend_Loader_Autoloadersingleton实例的状态,恢复它的原始状态,注销所有的自动加载器回调和所有注册的命名空间。 |
| autoload($class) | string|FALSE |
| 试图加载一个类。 |
| setDefaultAutoloader($callback) | Zend_Loader_Autoloader |
| 指定默认的加载器回调 |
| getDefaultAutoloader() | callback | N/A | 获取默认的加载器接口;默认是Zend_Loader::loadClass(). |
| setAutoloaders(array $autoloaders) | Zend_Loader_Autoloader |
| 设置在自动加载器栈使用具体的自动加载器列表。自动加载器列表中的每个项目必须是PHPcallback。 |
| getAutoloaders() | Array | N/A | |
| getNamespaceAutoloaders($namespace) | Array |
| 获取所有已注册的自动加载器来加载一个特定的的命名空间。 |
| registerNamespace($namespace) | Zend_Loader_Autoloader |
| 注册命名空间. If$namespace is a string, it registers that namespace; if it"s an array of strings, registers each as a namespace. |
| unregisterNamespace($namespace) | Zend_Loader_Autoloader |
| |
| getRegisteredNamespaces() | Array | N/A | |
| suppressNotFoundWarnings($flag = null) | boolean|Zend_Loader_Autoloader |
| 错误提示 |
| setFallbackAutoloader($flag) | Zend_Loader_Autoloader |
| |
| isFallbackAutoloader() | Boolean | N/A | |
| getClassAutoloaders($class) | Array |
| |
| unshiftAutoloader($callback, $namespace = "") | Zend_Loader_Autoloader |
| |
| pushAutoloader($callback, $namespace = "") | Zend_Loader_Autoloader |
| |
| removeAutoloader($callback, $namespace = "") | Zend_Loader_Autoloader |
|
更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。