关于QeePHP的总结
2021/7/7 14:05:04
本文主要是介绍关于QeePHP的总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、目录结构
顶层目录结构
-
_code
保存应用程序主要代码的目录,包括控制器、模型、视图、表单、用户界面控件、助手
-
_config
保存应用程序的所有配置文件
-
_devel
保存应用程序的文档和数据库脚本文件,通常是一些.sql文件
-
_tmp
保存应用程序运行期间产生的日志文件和临时文件
-
public
保存应用程序的图片和js、css文件等静态文件
-
index.php
入口文件(第一个访问的文件,所有的指令功能都是从这文件分发出去)
_code子目录
-
controller
保存了控制器的代码
-
model
保存了模型相关代码
-
view
视图文件所在目录。包含两个特殊目录:_elements和_layouts。分别用于存储视图片段文件和布局视图文件。视图目录下会有一个与每个控制器同名的子目录,目录中的文件名和控制器动作的名称一致。
-
control
用户界面控件是QeePHP实现用户界面组件化的强大工具
-
helper
应用程序自己的助手类可以放在该目录中。类名称为“Helper_Text”的助手文件对应的是helper/text.php
-
_library
保存应用程序用到的第三库文件
-
_config
保存应用配置文件,如数据库连接
-
myapp.php
封装了应用程序的Web端的基本MVC流程和初始化操作,并为应用程序提供一些公共服务。
-
cli.php
封装了应用程序的终端的基本MVC流程和初始化操作,并为应用程序提供一些公共服务。
2、MVC模式
-
M代表Model,即模型,用于封装与业务逻辑有关的代码和数据。例如对订单模型和商品模型,分别封装的是订单和商品的数据和业务逻辑。
-
V代表View, 即视图,用于呈现内容给用户(就是将程序运行的结果返回给浏览器显示)。例如商品列表界面、后台登录界面。
-
C代表Controlller,即控制器,用于接收用户输入(通过浏览器发起的请求),然后调用模型对输入的数据进行处理并获得处理结果。最后将结果传递到视图(View),从而让用户能看到自己的操作结果。
例如:用户点击删除文章按钮后,控制器调用操作文章的模型,删除指定文章,最后通过视图显示成功删除文章的提示信息。
作用
:分离逻辑和表现。业务逻辑在模型中实现,处理结果在视图中显示。控制器充当中间人,根据用户请求调用模型,把处理结果调用到视图中。优点
- 清晰的将应用程序分隔为独立的部分
- 业务逻辑代码能够方便的在多处重复使用
- 方便开发人员分工协作
- 方便开发人员对应用程序各个部分的代码进行测试控制器角色
控制器角色
所有用户(通常是浏览器)的请求在QeePHP进行解析后,都交给控制器来处理,但是控制器不完成具体业务,控制器只将用户输入的数据提交给模型,然后调用模型的业务方法来实际完成业务。控制器是应用程序暴露给外部的接口,应用程序外部的用户只有访问控制器,才能使用应用程序。
总结
-
动作方法
控制器类中以“action”开头的方法,例如actionTest()
-
默认动作方法
未指定动作方法时,默认调用actionIndex()动作方法
-
默认控制器
未指定控制器时,默认调用default这个默认控制器
-
动作名称和控制器名称
只能是26个字母和10个数字组成,并且不区分大小写
3、ORM
定义:
ORM(对象关系映射)
作用:
在关系型数据库中存储对象间的关系时,需要ORM系统来提供帮助
4、url()函数
作用:
生成有效的url地址
例如:
url('user/register')
5、视图布局
-
指定要继承的视图
<?PHP $this->_extends('_layouts/default_layout');?>
-
通过定义区块来覆盖父模板的内容
<?php $this->_block('contents'); ?> <?php $this->_endblock();?>
6、访问控制
原因:应用程序总会限制某些功能对部分用户开放
作用:为应用程序外围增加一个检查机制,只有通过检查的请求才会被应用程序处理
-
基于角色的访问控制,简写为RBAC(Role-based Accss Control)
-
RBAC充当了系统的安全屏障,所有的操作经过RBAC的验证过才能使用,充分保证了系统的安全性
-
具体在应用程序中,RBAC就是限制了没有权限的用户无法访问那些受保护的控制器动作方法。
例如:不具备管理员角色的用户无法访问admin控制器
-
-
ACL服务
应用程序对象利用ACL服务拦截未授权的访问
这篇关于关于QeePHP的总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享
- 2024-11-01开源 PHP 商城项目 CRMEB 安装和使用教程
- 2024-11-01用php和mysql写无限分类,有哪几种方法-icode9专业技术文章分享
- 2024-10-31php数据分表导出时部分数据无法导出什么原因-icode9专业技术文章分享
- 2024-10-30有经验的 PHP 开发者学习一门新的编程语言,有哪些推荐的有前景的语言-icode9专业技术文章分享
- 2024-10-21php 检测图片是否篡改过-icode9专业技术文章分享