名称

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, 剥夺其后面的自动加载函数的执行权利.
例子

例 11.13. Yaf_Loader::autoload 的例子

     
     <?php
     Yaf_Loader::autoload("Baidu_ST_Dummy_Bar");
     ?>
     
    


MVC类的查找规则

控制器、动作和插件类(类名中带有_Controller、_Action、_Plugin后缀的类)不在类库目录中查找, 而是在应用目录下的对应目录中查找: 控制器类在APPLICATION_PATH/controllers/下, 模型类在APPLICATION_PATH/models/下, 插件类在APPLICATION_PATH/plugins/下. 这些目录同样受yaf.lowcase_path的影响.

参见
Yaf_Loader::import