yaf php5.3.5,PHP: Yaf_Loader - Manual

简介

Yaf_Loader 类为Yaf提供了自动加载功能的全面解决方案。

在第一次使用的时候,将检索 Yaf_Application 的实例,

Yaf_Loader 实现了单利模式,并使用spl_autoload注册它自己。

通过

Yaf_Loader 加载一个类时仅仅尝试一次,如果失败了,

后面的操作将取决于yaf.use_spl_auload,

如果这个配置项为On,注意:

请保持yaf.use_spl_autoload保持关闭,除非有一些library有自己的autoload机制,并且是无法改写的。

默认情况下,Yaf_Loader 收集所有library(类定义的脚本)储存进在

php.ini(yaf.library)定义的global library directory之中。

如果你想使用 Yaf_Loader 搜索本地类(库)(定义在application.ini,

默认情况下,它是 application.directory . "/libraray"),

你需要使用

让我们来看看一些例子(假设 APPLICATION_PATH 是 application.directory):

示例 #1 Config example

// Assuming the following configure in php.ini:

yaf.libraray = "/global_dir"

//Assuming the following configure in application.ini

application.libraray = APPLICATION_PATH "/library"

假设以下本地名称空间已被注册:

示例 #2 注册本地命名空间

public function_initLoader($dispatcher) {Yaf_Loader::getInstance()->registerLocalNameSpace(array("Foo","Bar"));

}?>

自动加载例子:

示例 #3 加载类

class Foo_Bar_Test =>

// APPLICATION_PATH/library/Foo/Bar/Test.php

class GLO_Name =>

// /global_dir/Glo/Name.php

class BarNon_Test

// /global_dir/Barnon/Test.php

在PHP 5.3中,你可以使用命名空间:

示例 #4 加载命名空间类

class \Foo\Bar\Dummy =>

// APPLICATION_PATH/library/Foo/Bar/Dummy.php

class \FooBar\Bar\Dummy =>

// /global_dir/FooBar/Bar/Dummy.php

你可能会注意到所有文件夹名字的首字母是大写的,你可以通过在php.ini中设置 yaf.lowcase_path = On 来将它们小写。

Yaf_Loader 也是设计来加载MVC类,响应的规则如下:

示例 #5 MVC类加载例子

Controller Classes =>

// APPLICATION_PATH/controllers/

Model Classes =>

// APPLICATION_PATH/models/

Plugin Classes =>

// APPLICATION_PATH/plugins/

Yaf 通过识别一个类的后缀(这个是默认的,你也可以通过改变配置项 yaf.name_suffix 来将它改为通过前缀识别)来决定它是否是一个MVC类:

示例 #6 MVC 类区别

Controller Classes =>

// ***Controller

Model Classes =>

// ***Model

Plugin Classes =>

// ***Plugin

some examples:

示例 #7 MVC loading example

class IndexController

// APPLICATION_PATH/controllers/Index.php

class DataModel =>

// APPLICATION_PATH/models/Data.php

class DummyPlugin =>

// APPLICATION_PATH/plugins/Dummy.php

class A_B_TestModel =>

// APPLICATION_PATH/models/A/B/Test.php

该目录将受 yaf.lowcase_path 的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值