基于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/