基于Medoo的简单的mvc框架:Medoo-MVC

jopen 10年前

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/