惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
IT之家
IT之家
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
N
Netflix TechBlog - Medium
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
L
LangChain Blog
博客园 - Franky
美团技术团队
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
小众软件
小众软件
Y
Y Combinator Blog
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News

zodream梦想开源/个人编程日记

文件解析笔记-zodream梦想开源/个人编程日记 密码本开发笔记之读写与保存-zodream梦想开源/个人编程日记 SkiaSharp 把 pixel byte[] 转成 SKBitmap-zodream梦想开源/个人编程日记 nas 使用 Docker 安装 gogs-zodream梦想开源/个人编程日记 复制 android 手机中的文件到电脑-zodream梦想开源/个人编程日记 周报:寻找优质的周刊-zodream梦想开源/个人编程日记 开发日志:对Markdown的代码块新增引用来源支持-zodream梦想开源/个人编程日记 周报:怎么写技术类的教程文章-zodream梦想开源/个人编程日记 css display:flex 布局尺寸超出问题-zodream梦想开源/个人编程日记 周报:SEO优化的思考-zodream梦想开源/个人编程日记 Edge 浏览器不适用 Edge Image Viewer 打开图片 -zodream梦想开源/个人编程日记 SEO 学习笔记(一) 内容来源-zodream梦想开源/个人编程日记 PHP 实现双因素身份认证(2FA)-zodream梦想开源/个人编程日记 WPF MVVM 获取List 多选数据-zodream梦想开源/个人编程日记 Burp Suite 抓包-zodream梦想开源/个人编程日记 使用 indexnow 注意事项-zodream梦想开源/个人编程日记 Godot 使用字体图标 例如: Iconfont、FontAwesome-zodream梦想开源/个人编程日记 angular 15 对指定页面进行访问限制-zodream梦想开源/个人编程日记 CSS 使用 column-count 实现瀑布流出现内容分割的解决办法-zodream梦想开源/个人编程日记 input 确认按键事件在手机端不生效-zodream梦想开源/个人编程日记 C# 使用socket 进行通讯-zodream梦想开源/个人编程日记 Maui开发中Windows应用开启管理员权限-zodream梦想开源/个人编程日记 Maui 中自定义控件-zodream梦想开源/个人编程日记 angular 14 使用 ng-template 实现tree 结构显示-zodream梦想开源/个人编程日记 c# 动态安装和卸载dll-zodream梦想开源/个人编程日记 慎用 CompositionTarget.Rendering-zodream梦想开源/个人编程日记 c# 重写 c++ 程序笔记:数据初始化-zodream梦想开源/个人编程日记 源码编译 aseprite-zodream梦想开源/个人编程日记 记录一下字符串分隔split各语言之间的不同-zodream梦想开源/个人编程日记 c# Gzip解码无头内容-zodream梦想开源/个人编程日记
第一课 介绍-zodream梦想开源/个人编程日记
zodream · 2016-03-03 · via zodream梦想开源/个人编程日记

最新文档

具体文档请查看【zodream

整体说明

在本程序中,主要使用的是领域驱动设计模式,在主程序中主要分为四部分:用户层、服务层、领域层、基础层。

用户层主要面向用户,包括界面,负责展示给用户看,是面向浏览器端。

服务层主要负责接收用户信息,分配领域层执行具体操作,并将结果返回给用户。

领域层负责具体执行流程,是整个模式的核心。

基础层主要负责底层方法,提供基础设施,为领域层的执行提供底层方法。

基本步骤

在本程序中,

从浏览器接受网址,

启动指定的脚本文件(例如index.php),启动主程序(Zodream/Service/Web.php),进入路由导航(Zodream/Route/Router.php -> Route.php),根据配置文件信息路由驱动解析网址(例如:优雅链接),分配到具体的控制器(Service/Home/HomeCcontroller.php),执行控制器中的指定方法(indexAction),返回具体的界面($this->show('index') -> UserInterface/Home/index.php

路由介绍

在整个流程中,路由的原理是:

第一步,判断是否是首页;

第二步,判断是否是在配置文件中注册的路由;

第三步,进行自动判断,先判断网址中包含控制器和方法,再判断只包控制器(方法为默认 index),再判断只包含方法(控制器为默认Home),最后报错;

其中网址可能包含参数,参数以数字分割,如果提取的参数是单数,第一个数字则为分隔符,忽略,然后把参数进行配对,奇数为参数名,偶数为参数值。

控制器介绍

控制器中包括变量和方法,变量是 $rules ,指定方法的规则,基本规则有 
* 无要求 
* ? 必须是游客, 
* @ 必须已经登录, 
* p 必须POST提交, 
* ! 未开放不能访问, 
* 其他 要求通过验证权限;

方法,方法名必须加上APP_ACTION定义的后缀(避免与普通方法混淆),

加载数据或插件,

可以通过 use、include、include_once、require、require_once ,

也可通过 $this->loader->model()、$this->loader->library()、$this->loader->plugin() 加载,

然后通过 $this->__() 使用;

通过 $this->show() 指向界面,

如果第一个参数不是 string 则,根据路由解析出来的控制器名和方法名自动加载界面(例如 HomeController::indexAction -> Home/index.php),

如果是指定则可以用户 . 代替 / ,对界面传参数,

可以用 $this->send() 传任意值(如果不是数组则自动加在 data 下)或 $this->show() 第一个参数为数组或第二个参数;

View介绍

主要函数

$this->ech($name, $default);      输出$name的值,如果为空则输出 $default ,默认为 null ,当$name为 null 时,以字符串的形式输出数组;

$this->get($name, $default);      同理返回;

$this->set($name, $value);        传递参数值

$this->extend($view, $script);    加载其他共享视图,并传递脚本路径;

$this->jcs($arg, ...);            生成js css引用, 可以为 匿名函数,以 @ 开头是绝对路径

$this->url($url);                 输出绝对路径

$this->asset($file);              输出绝对资源路径

结束语

基本介绍就这么多。

转载请保留原文链接: https://zodream.cn/blog/id/1.html