用 Composer构建自己的 PHP 框架之设计 MVC(2)

将包含查询结果的数组返回。修改 HomeController:

<?php
/**
* \HomeController
*/
class HomeController extends BaseController
{
  public function home()
  {
    $article = Article::first();
    require dirname(__FILE__).'/../views/home.php';
  }
}

保存,刷新,你将得到跟上面一模一样的页面,视图调用成功!

几乎所有人都是通过学习某个框架来了解 MVC 的,这样可能框架用的很熟,一旦离了框架一个简单的页面都写不了,更不要说自己设计 MVC 架构了,其实这里面也没有那么多门道,原理非常清晰,我说说我的感悟:

1. PHP 框架再牛逼,他也是 PHP,也要遵循 PHP 的运行原理和基本哲学。抓住这一点我们就能很容易地理解很多事情。

2. PHP 做的网站从逻辑上说,跟 php test.php 没有任何区别,都只是一段字符串作为参数传递给 PHP 解释器而已。无非就是复杂的网站会根据 URL 来调用需要运行的文件和代码,然后返回相应的结果。

3. 无论我们看到的是 CodeIgniter 这样 180 个文件`组成的“小框架”,还是 Laravel 这样`加上 vendor 一共 3700 多个文件`的 “大框架”,他们都会在每一个 URL 的驱动下,组装一段可以运行的字符串,传给 PHP 解释器,再把从 PHP 解释器返回的字符串传给访客的浏览器。

4. MVC 是一种逻辑架构,本质上是为了让人脑这样的超低 RAM 的计算机能够制造出远超人脑 RAM 的大型软件,其实 MVC 架构在 GUI 软件出现以前就已经成形,命令行输出也是视图嘛。

5. 在 MFFC 里,一个 URL 驱动框架做的事情基本是这样的:入口文件 require 控制器,控制器 require 模型,模型和数据库交互得到数据返回给控制器,控制器再 require 视图,把数据填充进视图,返回给访客,流程结束。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/76bdad8bfa6d9c42604a221b16b075c1.html