资讯专栏INFORMATION COLUMN

zanphp源码解读 - MVC说起

aisuhua / 2901人阅读

摘要:前言当然从我们熟悉但不完全熟悉的说起。下面是中的具体逻辑了。这里采用的是的方式。

前言

</>复制代码

  1. 当然从我们熟悉(但不完全熟悉)的 MVC 说起。简(zhi)单(jie)的描述.

1. MVC 概览 1.1. URL 规则

上篇 目录说明中 提到的,这里不多说 规则就是这样,后面来说其源码

1.2. Controller && Action

src/Index/IndexController.php > function dbOperation() {}

</>复制代码

  1. doSql());
  2. yield $this->r(0, "json string", $result);
  3. }
  4. }
1.3. Model

</>复制代码

  1. 从上的 namespace 得知 Model src/Model/Index/GetDBData
    Controller 中 获取 一个 Model $demo
    $demo->doSql() 获取相关数据
    当然 这里 的 GetDBData 只是一个演示,正常来说 应该是个 User 、 Shop 等等啥的
    同样 doSql() 也是演示而已, 想成 getAllUser(), getBoy() 啥的。
    下面 是 Model 中的 具体 逻辑了。
    这里 youzan 采用的是 SqlMap的 方式。至于为什么。看官网说明吧。
    当然这个 SqlMap 不是那个传说中的 Sql注入工具

</>复制代码

  1. 2
  2. ];
  3. //demo.demo_sql_id1_1对应resource/sql/demo.php中的配置
  4. yield Db::execute("demo.demo_sql_id1_1", $data);
  5. }
  6. }

</>复制代码

  1. [
  2. "table" => "TABLES",
  3. "sql" => "
  4. SELECT * FROM TABLES
  5. #LIMIT#
  6. ",
  7. ],
  8. ];
1.4. View JSON View

</>复制代码

  1. 上面介绍 Model 时候 yield $this->r(0, "json string", $result);
    返回的 json ‘View’

Template View

</>复制代码

  1. public function showTpl()
  2. {
  3. // -> src/Demo/View/Test/test.html
  4. $this->assign("str", "Zan Framework"); //给模板中的变量赋值
  5. yield $this->display("Demo/test/test"); //输出模板页面
  6. }
2. MVC 相关配置 2.1 路由配置

</>复制代码

  1. resource/config/share/route.php
    http://zanphpdoc.zanphp.io/MV...

</>复制代码

  1. "/index", // 默认 module 对应 src/Index目录
  2. "default_controller" => "index", // 默认 controller 对应 src/Index/IndexController
  3. "default_action" => "index", // 默认 action 对应 IndexController 中的 action 方法
  4. "default_format" => "html", // 响应 content-type
  5. // "router_class" => "/namespace/router_class", // 自定义路由
  6. ];
2.2 session 启用

</>复制代码

  1. resource/config/test/server.php

</>复制代码

  1. [
  2. "run" => true, // true 启用 session
  3. "store_key" => "demo.session.session",
  4. ],
  5. ];
3. 源码剖析

</>复制代码

  1. 想了想下 还是 后面再说吧, 继续吊胃口

相关资料

数据库操作
SqlMap
zanPHP-MVC

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26043.html

相关文章

  • zanphp源码解读 - 知识扫盲

    摘要:中的容器容器介绍容器中获取一个类的实例容器中注册于获取类的单例函数理解面向接口开发会帮助你更好的理解容器类容器帮助函数获取类的实例注册类的单例占位有待补充 PHP协程与yield 我说不如你查阅相关文档与资料 Iterator(迭代器)接口 生成器总览在PHP中使用协程实现多任务调度 当然 如果你暂时 懒的话 yield 当成 return 关键字就行 zanphp中的命名空间 Za...

    马龙驹 评论0 收藏0
  • zanphp源码解读 - 请求与响应

    摘要:前言也许这是我们最关系的一个环节了。一个应用简单来说无非就是请求和相应了。获取你真的该补补协程的相关知识了。 前言 也许这是我们最关系的一个环节了。一个web应用简单来说无非就是请求和相应了。获取你真的该补补 协程 的相关知识了。不过。。不懂协程懂进程~ 那就 当成进程来看 一个请求一个进 (xie) 程.懂线程~ 那就 当成 线程来看 一个请求一个线 (xie) 程 分析 Requ...

    ybak 评论0 收藏0
  • zanphp源码解读 - 目录结构

    前言 本系列源码解读已 http-demo 项目为例 目录说明 showImg(https://segmentfault.com/img/bVX8wy?w=452&h=431); 主要关心 图片箭头指向目录http://zanphpdoc.zanphp.io/we... bin: 服务启动bin文件目录 init: 应用初始化相关 resource: 配置文件目录,具体配置见 项目配置 src...

    jsliang 评论0 收藏0
  • zanphp源码解读 - 应用的启动

    摘要:获取应用并启动分析设置应用名称获取本身实例想容器注册单例设置应用基础路径其他初始化工作初始化容器其他初始化工作创建根据前面的知识扫盲可知道返回的真身是位于分析继承这里就把中的函数都放在分析了服务的启动主入口函 获取应用并启动 php bin/httpd

    Jioby 评论0 收藏0
  • zanphp源码解读 - 环境安装

    摘要:前言因为本系列主要解读源码,所以环境采用作者自己搭建的适用系列的环境。 前言 因为本系列主要解读zanphp源码, 所以环境采用作者自己搭建的适用 zan 系列的 docker 环境。 https://github.com/cjeruen/zan-docker 环境相关说明 本系列基础目录都在 ~/zan-code 目录下进行 如有变更 自行 切换目录 安装 docker 与 co...

    hosition 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<