yaf学习笔记 - MVC模式

发布 : 2017-06-12 分类 : IT 浏览 :

当我们访问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方法名

访问结果如下:

20170613149732160779459.png

IndexController的indexAction的代码如下:

~/test/application/controllers/Index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public function indexAction($name = "Stranger") {
//1. fetch query
$get = $this->getRequest()->getQuery("get", "default value");
//2. fetch model
$model = new SampleModel();
//3. assign
$this->getView()->assign("content", $model->selectSample());
$this->getView()->assign("name", $name);
//4. render by Yaf, 如果这里返回FALSE, Yaf将不会调用自动视图引擎Render模板
return TRUE;
}

注意:

  • $name默认值是Stranger,我们可以通过下面的方式指定$name的值
1
yaf.com/index/index/index/name/jimxu

2017061314973219814429.png

  • 申明SampleModel类的一个对象,通过selectSample方法获取$content的值
~/test/application/models/Sample.php
1
2
3
public function selectSample() {
return 'Hello World!';
}
  • $name$content传到view
1
2
$this->getView()->assign("content", $model->selectSample());
$this->getView()->assign("name", $name);
  • 在view对应的phtml中可以使用$name$content变量的值
~/test/application/views/index/index.phtml
1
echo $content, " I am ", $name;
  • 通过MVC设计模式,以控制器为中介,在模型文件中进行复杂的业务逻辑处理,在视图文件中渲染效果,实现了模型和视图的低耦合
本文作者 : 小凡
原文链接 : https://16bh.github.io/2017/06/12/yaf-study-note-mvc/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
留下足迹