当我们访问yaf.com
网站的时候,先走到入口文件index.php
,然后经过bootstrap
初始化,router
路由,因为没有指定controller,会使用默认控制器IndexController的默认方法IndexAction,即下面的几种访问方式都是可以的:
1 2 3 4
| yaf.com yaf.com/index yaf.com/index/index yaf.com/index/index/index
|
最后一种访问方式里:第一个index是Module模块名,第二个index是Controller控制器名,第三个index是Action方法名
访问结果如下:
IndexController的indexAction的代码如下:
~/test/application/controllers/Index.php1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public function indexAction($name = "Stranger") { $get = $this->getRequest()->getQuery("get", "default value"); $model = new SampleModel(); $this->getView()->assign("content", $model->selectSample()); $this->getView()->assign("name", $name); return TRUE; }
|
注意:
- $name默认值是Stranger,我们可以通过下面的方式指定$name的值
1
| yaf.com/index/index/index/name/jimxu
|
- 申明SampleModel类的一个对象,通过selectSample方法获取$content的值
~/test/application/models/Sample.php1 2 3
| public function selectSample() { return 'Hello World!'; }
|
1 2
| $this->getView()->assign("content", $model->selectSample()); $this->getView()->assign("name", $name);
|
- 在view对应的phtml中可以使用
$name
和$content
变量的值
~/test/application/views/index/index.phtml1
| echo $content, " I am ", $name;
|
- 通过MVC设计模式,以控制器为中介,在模型文件中进行复杂的业务逻辑处理,在视图文件中渲染效果,实现了模型和视图的低耦合