Yaf_Loader::autoload
(Since Yaf 1.0.0.5)
public static boolean Yaf_Loader::autoload( string $class_name );
载入一个类, 这个方法被Yaf用作自动加载类的方法, 当然也可以手动调用.
$class_name要载入的类名, 类名必须包含路径信息, 也就是下划线分隔的路径信息和类名. 载入的过程中, 首先会判断这个类名是否是本地类, 如果是本地类, 则使用本地类类库目录, 否则使用全局类目录. 然后判断yaf.lowcase_path是否开启, 如果开启, 则会把类名中的路径部分全部小写. 然后加载, 执行.
/** yaf.lowcase_path=0 */
Foo_Bar_Dummy表示这个类存在于类库目录下的Foo/Bar/Dummy.php
/** yaf.lowcase_path=1 */
Foo_Bar_Dummy表示这个类存在于类库目录下的foo/bar/Dummy.php
![]() |
注意 |
|---|---|
| 在php.ini中的yaf.lowcase_path开启的情况下, 路径信息中的目录部分都会被转换成小写. |
成功返回TRUE
![]() |
注意 |
|---|---|
| 在php.ini中的yaf.use_spl_autoload关闭的情况下, 即使类没有找到, Yaf_Loader::autoload也会返回TRUE, 剥夺其后面的自动加载函数的执行权利. |
控制器、动作和插件类(类名中带有_Controller、_Action、_Plugin后缀的类)不在类库目录中查找, 而是在应用目录下的对应目录中查找: 控制器类在APPLICATION_PATH/controllers/下, 模型类在APPLICATION_PATH/models/下, 插件类在APPLICATION_PATH/plugins/下. 这些目录同样受yaf.lowcase_path的影响.