Aura.Autoload



简介

Aura自动加载包为PHP 5.3+提供了与PSR-0的SPL自动加载器兼容的实现。



路径包含方式

创建Loader的实例并且使用SPL注册。

<?php
$loader = require '/path/to/aura.autoloader/scripts/instance.php';
$loader->register();

现在,Loader会在包含路径中查找兼容PSR-0的类名,如果没有找到将会抛出一个Exception_NotFound异常。



类前缀方式

你可以告诉Loader在指定的路径中查找指定前缀(类名)的类。前缀既可以是老式的PEAR风格,也可以是新式的PHP5.3中的名字空间。

<?php
// look for all Vendor_* classes in this path:
$loader->addPrefix('Vendor_', '/path/to/zf/lib/Zend');

// look for vendor\package classes in this path:
$loader->addPrefix('vendor\package\\', '/path/to/vendor.package/src');

// additionally, e.g. in testing modes, also look for vendor\package
// classes in this path as well:
$loader->addPrefix('vendor\package\\', '/path/to/vendor.package/tests');

(注意:在名字空间的末尾,你应该使用双反斜线,而不是单反斜线。)

如果Loader在明确给出的路径中没有找到指定前缀的类,就会到包含路径中查找。



精确类方式

你可以使用addClass()方法告诉Loader指定类的位置。

<?php
// look for the VendorClassName at this location:
$loader->addClass('VendorClassName', '/path/to/VendorClassName.php');

这种方法构建了从类名到类文件的映射,查找相对较快。

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>