yii框架的模块(module)配置

162 篇文章 0 订阅
113 篇文章 0 订阅

yii中的模块看起来更像一个应用。主要区别是模块不能单独部署,必须存在于一个应用中。用户可以像访问普通应用控制器那样,访问模块中的控制器。

模块在一些大型应用中,非常有用,可以将应用划分为几个模块,每个模块可以单独维护。

紧接上篇文章《yii框架之hello world》,在modules文件夹下,建立hello文件夹。即在“模块(modules)”目录下,建立hello模块。如图示:


在hello模块中,下面的结构和普通的yii应用是一样的。,建立一个HelloModule.php文件,模块文件的类必须继承CWebModule的模块类。类的名称为:$id.“Module”,$id代表模块的ID。因为模块的名称为hello,所以这个文件名为:helloModule,内容如下:

HelloModule.php
<?php
class HelloModule extends CWebModule {
}
?>

controllers/PostController.php的内容: 

PostController.php
<?php
class PostController extends CController {
public function actionWorld() {
      $this ->render( "hw" , array ( "varYii" => "hi yii Module" ));
   }
}
?>

可以看出,这里的写法和上篇文章的Controller写法是一模一样的。因为控制器Id是post,所以,我们在views下,建立post文件,建立一个hw.php的文件,为什么文件是是hw.php呢?因为$this->render("hw", array("varYii" => "hi yii Module")); 展示的内容是hw,所以要建一个hw.php的文件(注意路径)。如图示:


hw.php的内容如下:

hw.php
<?php
echo $varYii;
?>

这里,还需要对appyii/protected/config/main.php进行修改,增加模块熟悉。main.php的内容如下:

main.php
<?php
return array(
"modules" => array ( "hello" ,),
);
?>

另外,appyii/index.php的内容也要引入对main.php的应用。内容如下:

index.php
<?php
require_once(dirname(__FILE__) . '../../yii-1.1.6/framework/yii.php');

$config = dirname(__FILE__) . '/protected/config/main.php';
Yii::createWebApplication($config)->run();
?>

-----------------------------------------------------

至此,配置结束。模块中的控制器动作通过 r=moduleID/controllerID/actionID进行访问。运行一下,看看结果。


--

 另外,说明一下,如果一个控制器位于controller目录的子目录中,我们仍然可以通过上述的访问方式访问,例如,假设PostController位于hello/controllers/aa中,我们仍然可以通过 r=hello/aa/post/world 进行访问。但是需要注意,如果PostController.php的代码不做改动,要想访问到hw.php,需要对目录进行如下调整:modules/hello/views/aa/post/hw.php ,对比原来的目录:modules/hello/views/post/hw.php


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值