固然從咱們熟悉(但不徹底熟悉)的 MVC 提及。簡(zhi)單(jie)的描述.php
上篇 目錄說明中 提到的,這裏很少說 規則就是這樣,後面來講其源碼html
src/Index/IndexController.php > function dbOperation() {}
sql
<?php namespace Com\JeRuen\HttpDemo\Controller\Index; use Zan\Framework\Foundation\Domain\HttpController as Controller; use Com\JeRuen\HttpDemo\Model\Index\GetDBData; class IndexController extends Controller { //操做數據庫示例 public function dbOperation() { $demo = new GetDBData(); $result = (yield $demo->doSql()); yield $this->r(0, 'json string', $result); } }
從上的 namespace 得知 Model src/Model/Index/GetDBData
Controller 中 獲取 一個 Model $demo
$demo->doSql() 獲取相關數據
固然 這裏 的 GetDBData 只是一個演示,正常來講 應該是個 User 、 Shop 等等啥的
一樣 doSql() 也是演示而已, 想成 getAllUser(), getBoy() 啥的。
下面 是 Model 中的 具體 邏輯了。
這裏 youzan 採用的是 SqlMap的 方式。至於爲何。看官網說明吧。
固然這個 SqlMap 不是那個傳說中的 Sql注入工具數據庫
<?php namespace Com\JeRuen\HttpDemo\Model\Index; use Zan\Framework\Store\Facade\Db; class GetDBData { public function doSql() { $data = [ 'limit' => 2 ]; //demo.demo_sql_id1_1對應resource/sql/demo.php中的配置 yield Db::execute("demo.demo_sql_id1_1", $data); } }
<?php // 參見sqlmap文檔 return [ 'demo_sql_id1_1' => [ 'table' => "TABLES", 'sql' => " SELECT * FROM TABLES #LIMIT# ", ], ];
上面介紹 Model 時候 yield $this->r(0, 'json string', $result);
返回的 json ‘View’json
public function showTpl() { // -> src/Demo/View/Test/test.html $this->assign("str", "Zan Framework"); //給模板中的變量賦值 yield $this->display("Demo/test/test"); //輸出模板頁面 }
resource/config/share/route.php
http://zanphpdoc.zanphp.io/MV...segmentfault
<?php return [ 'default_route' => '/index', // 默認 module 對應 src/Index目錄 'default_controller' => 'index', // 默認 controller 對應 src/Index/IndexController 'default_action' => 'index', // 默認 action 對應 IndexController 中的 action 方法 'default_format' => 'html', // 響應 content-type // 'router_class' => '/namespace/router_class', // 自定義路由 ];
resource/config/test/server.phpsession
<?php return [ // other config 'session' => [ 'run' => true, // true 啓用 session 'store_key' => 'demo.session.session', ], ];
想了想下 仍是 後面再說吧, 繼續吊胃口工具