固然从咱们熟悉(但不彻底熟悉)的 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', ], ];
想了想下 仍是 后面再说吧, 继续吊胃口工具