上一篇文章中引进了 codingbean/macaw 这个路由模块,有了路由其他的事情就都好解决了,下面来说一下MVC设计思路。
新建nuf/app文件夹,在app文件夹中创建 controllers、models、views 三个文件夹。
新建controllers/BaseController.php文件:
新建controllers/HomeController.php文件:
在nuf/routes/routes.php文件增加一个路由: Macaw::get('home', 'HomeController@home');
接下来添加自动加载规则,修改 composer.json 为:
{
"require": {
"codingbean/macaw": "dev-master"
},
"autoload": {
"classmap": [
"app/controllers",
"app/models"
]
}
}运行 composer dump-autoload,访问nuf.dev/index.php/home,输出success!,说明配置成功。
连接数据库,使用model层读取数据
新建 models/Post.php 文件:
'first testing title','content'=>'first testing content'),
array('title'=>'second testing title','content'=>'second testing content'),
);
return $data;
}
}修改controllers/HomeController.php文件:
class HomeController extends BaseController
{
public function home()
{
$data = Post::getPosts;
var_dump(data);
}
}运行 composer dump-autoload,刷新,打印出data数组,至此M层和C层已经实现,接下来我们开始搞定C层:
修改 HomeController:
class HomeController extends BaseController
{
public function home()
{
$data = Post::getPosts;
require dirname(__FILE__).'/../views/home.php';
}
}新建views/home.php文件:
刷新,同样输出data数组,说明view调用成功。其实MVC本质上是入口文件加载控制器文件,控制器文件加载模型文件获取数据处理业务逻辑,然加载视图文件把数据填充进视图。