最新文档
具体文档请查看【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