YAF模块的使用

分类: PHP  • 发布时间: 2015-11-10 21:57:28  • 浏览量:11496

我们在实际的项目中,经常会使用模块化开发,方便团队协作和维护,对于yaf来说,怎么分模块呢,其实也很简单,不过默认情况下,yaf没有分模块,只有一个默认Index模块,下面记录一下操作步骤:

下面所说的yaf项目目录结构均为使用yaf_cg生成的默认结构,配置也为yaf安装后的默认配置,当前需求为:新加Home和Admin模块,配置步骤如下:

第一步:首先修改conf/application.ini,在[common]配置段下添加如下配置

application.modules = 'Index,Home,Admin'

注意:手册中说一定要定义Index Module,如果不定义Index模块,在访问原有的默认模块时会报错:Fatal error: Uncaught exception 'Yaf_Exception_LoadFailed_Module' with message 'There is no module Index' in /site/OSChina/test/index.php on line 0

第二步:在application目录下新建modules目录,用来存放模块,然后在modules目录下创建Admin和Home目录,分别在Admin和Home目录下创建controllers目录用来存放对应模块的控制器

比如:创建完目录,在application/modules/Home/controllers下创建一个User.php,然后在User.php文件里定义一个User控制器

class UserController extends Yaf_Controller_Abstract
{
    public function testAction()
    {
        echo 111;
        return false;
    }
}

这时我们用http://domain.com/Home/User/test就可访问该Home模块下的User控制器下的testAction方法。

通过上面,也可以看出Yaf的控制器和方法的定义方法,为什么要在方法中return false呢,是因为Yaf默认会去加载视图,return false是为了不让它自动加载视图。


注意:Yaf的控制器名不要采用驼峰法命名,否则在文件系统区别大小写的时候会出问题


yaf的类中不能使用__construct()方法,可以用init()方法做类似的功能

文章标签: php, 模块, yaf