php框架启动过程,框架启动方式 - CrossPHP 框架文档
模块及命名空间
在CrossPHP项目中, 默认的模块结构如下
├─app
│ └─web
│ ├─controllers
│ └─views
├─modules
│ └─admin
app按文件夹划分, 每个app都包含独MVC模式中的CV层, 以及V层模板和布局文件. Modules包含各app公用的模块, 传统框架的Model只是Module的一个成员
控制器
控制器位于对应app的controllers文件夹下, 以web为例, 控制器的命名空间为:
namespace app\web\controllers;
规则如下:
app\文件夹名称\controllers
依据此规则, 假设名为admin的app的控制器命名空间就为:
namespace app\admin\controllers;
视图控制器
与传统的MVC框架比, 多了视图控制器的概念, 视图控制器命名和控制器命名保持一致, 并在结尾增加View. 假设名称是Main的控制器, 对应的视图控制器的名称就为MainView, MainView.php文件放在app/web/views文件夹中, MainView类的命名空间为:
namespace app\web\views;
视图控制器用于处理模板数据, 在视图控制器中定义的方法, 可以在模板中直接调用. 这很轻易的实现了对模版的扩展. 当要从HTML视图切换到JSON\XML或未来的某种格式时, 只需要先在视图控制器中添加对应处理的方法, 再把app配置文件中的视图格式配置指定为方法名就可以了(sys->display).
Modules
Module不是单一的Model, 在现代WEB开发中, 数据来源可能需要多个Model配合, 比如先从缓存Model中检查缓存数据是否存在, 如果存在就直接返回, 不存在就从数据库Model中去获取数据, 保存到缓存, 以备下次使用. 传统的Model只是Module中的一个成员.
Module服务于所有的app, 以保持不同app中数据来源的一致性. Module根据功能来划分, 不同的功能分别放到不同的文件夹, 假设有admin, user, article三个功能模块, 他们在Modules文件夹下的路径分别是:
modules/admin
modules/user
modules/articles
他们的类命名空间分别是:
namespace modules\admin;
namespace modules\user;
namespace modules\articles;
自定义模块
除了以上默认的模块以外, 你也可以在自己的项目中自定义模块, 自定义模块的命名规则如下:
自定义模块名称\子模块名称
自定义模块名称即文件夹名称, 假设现在要定义验证模块validate, 首先在项目根目录下新建文件夹validate, 创建好的项目结构如下:
├─app
│ └─web
│ ├─controllers
│ └─views
├─modules
└─validate
在validate下新建一个类文件UserValidate.php, 输入以下内容用于验证用户相关信息:
namespace validate;
class UserValidate
{
static function name($user_name)
{
echo $user_name;
}
}
使用自定义模块
我们可以在项目的任何位置使用这个用户验证类, 只需在要使用的类里注明命名空间就可以了, 在控制器中的使用方法如下:
namespace app\web\controllers;
use validate\UserValidate;
class Main extends Web
{
function index()
{
UserValidate::name("abc");
}
}
你可以根据项目需求自定义各种模块, 更优雅的完成工作
php框架启动过程,框架启动方式 - CrossPHP 框架文档相关推荐
- ARM 之八 Cortex-M/R 内核启动过程 / 程序启动流程(基于IAR)
在前面的文章<ARM 之 Cortex-M/R 内核启动过程 / 程序启动流程(基于ARMCC)>中已经介绍过了 Cortex-M/R 内核相关内容.这里基于 IAR 的启动流程与之前 ...
- tomcat启动过程-start启动
tomcat源码系列导航栏 tomcat源码分析环境搭建 tomcat启动过程-load初始化 tomcat启动过程-start启动 目录 前言 启动流程 启动入口main函数 代码块一 start ...
- 后台管理系统框架搭建 | CRUD实现 | MP代码生成器 | Swagger2在线文档
day01 微信商城后台管理系统框架搭建 | CRUD实现 | MP代码生成器 | Swagger2在线文档 创建项目 项目名含大写字母会报异常 啥都不选 之后点完成 根项目的pom依赖如下,部分依赖 ...
- 基于python-实训基地管理系统-django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署
基于python-实训基地管理系统-django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署 基于python-实训基地管理系统-django框架计算机毕业设计源码+系统+数据库+lw文档 ...
- 基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署
基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署 基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档 ...
- java计算机毕业设计框架的报修系统源程序+mysql+系统+lw文档+远程调试
java计算机毕业设计框架的报修系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计框架的报修系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S架构 ...
- 基于python摄影作品展示网站django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署
基于python摄影作品展示网站django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署 基于python摄影作品展示网站django框架计算机毕业设计源码+系统+数据库+lw文档+调试部 ...
- SSM框架网上水果超市的设计与实现+文档
博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 SSM框架网上水果超市的设计与实现+文档 视频效果 https://www.bi ...
- Documentum常见问题4—如何通过vlink方式直接查看文档内容
问题4-如何通过vlink方式直接查看文档内容 webtop6.5以上版本中,增加了vlink方式可直接查看文档内容,这里有几种方式可直接通过链接访问文档对象. 1)已知文档对象ID,通过链接直接下载 ...
- Word开发工具Aspose.Words功能演示:在C ++中以编程方式在Word文档中添加或删除页眉和页脚
Word文档中的页眉和页脚用于格式化和显示重要信息,例如主题,章节,页码,Copywrite等.以编程方式使用Word文档时,可能需要添加或删除页眉和页脚.为此,本文将教您如何使用C ++在Word文 ...
最新文章
- JS 版的pnp in_array($str,$arr)
- xhprof在windows下面的安装和使用[上](windows版本)
- python在金融工程领域包括_金融工程专业对计算机的能力要求到底是什么?
- mysql 锁 代码_MySQL中的锁实例
- 会移动的文字(Marquee)
- gateway动态路由_无语!SpringCloud Gateway动态路由之Nacos,我已经讲得很清楚了
- HTML5+CSS3---弹性盒子模型
- Mysql的数据库引擎 区别特点_mysql数据库存储引擎及区别
- CSDN Blog升级通告
- 《我也能做CTO之程序员职业规划》之二:做CTO的苹果定律
- 99个wordpress经典插件
- 喜报!木兰宽松许可证通过OSI认证,成为首个中英双语国际开源许可证!
- 如何查询目标计算机的ip地址,基于Wireshark获取目标ip地址
- 微软模拟飞行10厦门航空涂装_《微软飞行模拟》或很快迎来技术公测
- dos命令中DATE:~0,10输出日期格式名称格式/改为-
- openstack(云主机热迁移)
- EasyMesh_Specification_v4中英文
- 解决java导出excel因数据量大占内存的问题
- matlab 理想变压器,Simscape Electrical
- 网盘江湖混战难打 百度为何坚持加码?
热门文章
- Harmony OS — RoundProgressBar圆形进度条
- Flutter进阶第7篇: 调用原生硬件Api实现照相机拍照和相册选择 以及拍照上传到服务器
- JSP — 如何设置jsp中cookie的过期时间
- Insufficient space for shared memory file 解决办法
- 品牌logo在EDM数据营销中的运用
- 001. 为input type=text 时设置默认值
- 迷你sql profile,给缺少sql跟踪的朋友们
- 从程序员到项目经理(28):该死的结果导向(只看结果,不问过程到底行不行?)...
- jquery 源码分析
- flash特效原理:图片滑动放大效果(3)