系统架构
系统目录结构
介绍
系统目录结构包含多个子目录,如插件目录、数据库目录等。
系统目录结构中的插件目录用于存放各种插件,每个插件都是一个子目录。
数据库目录用于存放数据库文件,包括SQLite和MySQL等。
系统目录结构中还包含一个入口文件,用于启动系统。
配置文件包含系统的配置信息,如数据库连接信息、插件配置...
系统配置
配置文件层次与作用范围
配置文件分为三个层次:根目录下的config,模块目录下的config(如dzz/config),应用下的config(如dzz/test/config);优先级依次递增,即在相同配置条件下,应用配置>模块配置>系统配置。 其作用范围分别为:系统配置在系统下生效,...
语言包
说明
DzzOffice支持多语言,即可根据需要设定系统的语言,如中文,英文等,只需加入对应语言包即可。系统中的语言处理包括前台和后台的中英文语言实现。所有语句都被定义成语句变量,并在模板中输入。语句变量的赋值均放在当前模块的 /language/zh-cn/lang.php 文件或上级模块的 /l...
输入数据处理
系统对用户输入数据做了以下的处理增强系统安全:$_GET和$_POST的值默认不做addslashes处理$_GET为$_GET和$_POST数组的合并,代码中统一使用$_GET取值过滤REQUEST_URI中的特殊字符,防止XSS攻击addslashes函数在使用此值时信任外部数据的安全性,但这样...
数据库层
通用接口DB
addslashes的处理仅insert()、update()、delete()方法对传入其的数组形式的参数进行intval或addslashes安全处理,字符串形式的参数将不处理。
新添加的方法 fetch_all($sql),order(), limit(),field() 等...
模板机制
前言
DzzOffice拥有完善的模版机制,支持模版和程序的分离,方便模版风格的扩展开发。先说Dzz模版机制!非常重要!非常重要!非常重要!Dzz在运行时,您可能会觉得是直接调用data/templete目录下的模板,然后您修改了该目录下的模板,并看到了立竿见影的效果,但您已经陷入了陷阱!data/...
缓存机制
DzzOffice支持两种缓存机制:内存缓存和内置缓存。通过配置缓存,可以极大的提高DzzOffice的并发和承载能力。
系统内置缓存
在系统配置文件/config/config.php中,存在以下一行代码:
$_config['cache']['type'] = &...
挂载点与钩子
概述
钩子,即行为扩展,是一种较为抽象的概念。它可被视为应用程序执行过程中的广义上,无论是大型业务逻辑,还是小型浏览器检测、多语言检测等,均可被视为一种行为。甚至您希望为网站用户的首次访问弹出一个“Hello, World!”的提示,也可视为一种行为。行为的存在使得无需修改框架和应用,即可通过外围扩...
系统挂载点
以下将列出系统预留的挂载点名称,并详细介绍挂载点的作用。方便后续开发参照或引用该挂载点。
check_login
前台用户验证挂载点。需要前台用户登录验证的地方调用挂载点即可
Hook::listen('check_login');
syntoline_department
将本地...
入口文件所对应的程序文件
介绍
入口文件是一个PHP文件,用于启动系统。
入口文件所对应的程序文件包括多个类文件和配置文件。
入口文件对应目录
admin.php对应/admin目录;index.php对应/dzz目录;user.php对应/user目录;misc.php对应/misc目录;oauth.php对应/dzz...
自动加载
系统支持类的自动加载,当调用不存在的类的时候就会调用core::autoload方法来加载相应的类文件。 所以我们在开发过程中要用到某个类的时候就不需要include或者require了。只要对应的类文件存在,并且命名符合规范,直接调用即可。coreBase.php中有这样一段代码:
if(func...
初始化流程
:::highlight blue 📌class_core.php是入口启动文件,主要实现了以下功能::::
注册 autoload 方法和异常处理方法
C::t 方法的实现
通过 ``C::t`` 方法来调用数据层对应表的对象来实现对数据的操作
3. memory 的初始化
通过...
系统中常用语法
:::tip[提示]可以通过print_r($GLOBALS)或var_dump($GLOBALS)打印全部变量。:::
变量输出
输出一个变量的值
模板中调用方式:{$my_var}、$my_var:::caution[]在模板中花括号可以省略但不建议去掉。:::
php文件调用方式: $my_...
PHP 性能优化
PHP的优势之一是其高速执行能力,然而,我们不应因此忽视对PHP代码进行优化处理的重要性。未经优化的逻辑将导致整个程序执行效率的降低。以下是对几个常见问题的分析:
文件绝对路径
在includes和requires中使用绝对路径,这样在分析路径花的时间更少。
循环与函数
在循环里别用函数,例如For...
系统的配置
系统安全注意事项
1、禁止长期放置phpinfo等探针,phpmyadmin等管理程序,需要的时候放置,并在使用完毕后移至非站点目录。2、禁止在运行的站点内放置测试程序,备份目录如bak,old文件夹一律移到非站点目录。3、禁止放置install文件夹,以及upgrade、index 相关安装和升级...
常用的系统函数
记录系统日志
记录系统日志:使用writelog($file, $log)方法,向系统日志插入日志信息,比如:```php/* 记录系统日志
*@parame $file 日志标识*@parame $log 日志内容*/writelog('otherlog', ...