Fork Me On Github

整体说明

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

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

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

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

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

基本步骤

在本程序中,

从浏览器接受网址,

启动指定的脚本文件(例如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);              输出绝对资源路径

结束语

基本介绍就这么多。
点击查看全文
0 308 0