基于Medoo的简单的mvc框架:Medoo-MVC
Medoo-MVC是一个基于Medoo的简单的php框架,如果之前使用过Medoo,只需几分钟学习即可开始开发,如果没接触过Medoo,可能会需要十多分钟学习一下。
Medoo-MVC快速开始:
如果还不了解Medoo,可以参考官方文档:http://medoo.in/,这里主要介绍Medoo-MVC中的新内容。
1.config
数据库连接配置文件单独存放在”/config/db.config.php”,默认使用mysql数据库,更改username,password,dbname后可开始其他操作。
2.Controller
通过Controller和Controller中的方法来实现功能,Controller都继承自medoo类,这样可以直接调用medoo的方法:
<?php class indexController extends medoo { function index() { $datas['title'] = 'Medoo-MVC'; ... $this->display( $datas ); } }
3.View
在Controller的方法中给变量赋值,然后通过display的参数传入模板显示:
如在indexController中的index方法为数组$datas的title元素赋值,通过display( $datas )传入index.html模板显示;
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title><?php echo $title; ?></title> ...
因为使用了extract处理传入参数,在模板中只需通过数组的key作为变量名即可调用变量的值,$title即是$datas['title']。
4.Model
如果使用model,建议继承medoo类,这样就可以调用medoo的数据操作方法,添加model后在同名的Controller中可以直接实例化model类:
index.model.php
<?php class index extends medoo { public function hello() { $datas[0] = 'This is function hello() of model index.'; $datas[1] = 'datas from database.'; return $datas; } }
index.class.php
<?php class indexController extends medoo { function index() { ... $hello = new index(); $datas['hello'] = $hello->hello(); ... $this->display( $datas ); } }
index.html
... <p> <?php if(isset($hello) && is_array($hello)):?> <?php foreach ($hello as $key => $value): ?> <p><?=$value; ?></p> <?php endforeach; ?> <?php endif; ?> </p> ...
output:This is function hello() of model index. datas from database.
5.全局函数
需要随处调用的自己添加的函数可写到”/lib/function/app.php”。
6.扩展类
自己添加的扩展类放到”/lib/class/”,之后就可在程序中实例化使用该扩展类:
a.class.php
<?php class a { public function hi() { return 'This is function hi() of lib class a.'; } }
index.class.php
<?php class indexController extends medoo { function index() { ... $lib_class = new a(); $datas['hi'] = $lib_class->hi(); $this->display( $datas ); } }
引入的扩展类可以在控制器中调用。
Medoo-MVC下载地址:https://github.com/XuHaixiao/Medoo-MVC
Medoo-MVC开发的项目“shop72hour”:http://www.xuhaixiao.com/shop72hour/