ulthon_admin
欢迎 目录和文件规范 系统架构 命名规范 php-cs-fixer public/static目录规范 app/common目录规范 数据库规范 CURD 命令行 表结构 数据库迁移代码 最佳实践 数据库自动缓存 后台菜单导入导出 权限的用法 table数据表格 cols operat _if titleField field selectList valueParser trueHide fieldFormat templet defaultValue search相关 time defaultSearchValue defaultToolbar init formFullScreen toobar modifyReload 控制器 CURD方法 导出 控制器通用验证 dataBrage向js传递参数 组件控件 select 下拉菜单option拼接 lay-submit paste-text粘贴 multiple-columns editor data-upload上传 tag-input标签输入 property-input动态字段输入 data-date时间控件参数 table-data列表选择器 city-picker城市选择器 copy-text 全局监听组件 data-request data-open 内置定时器 并发模式 重置密码 系统配置 PHP助手函数 sysconfig JS助手函数 checkMobile empty open 弹框 叠加loading getDataBrage getQueryVariable 扩展机制 事件扩展 实现事件 执行事件 事件列表 AdminLayoutRequireAfter LoadMigrationFiles AdminLoginIndex AdminLoginForget AdminLoginType AdminMenuTab AdminLayoutRequireBefore 自动更新 性能优化 精简代码 关闭数据库日志驱动 皮肤 正常 科幻 其他 切换模块时直接切换内容 关闭上传文件注入检测 代码编译原理 接入workerman和命令参数 升级TP6.1 Request的默认过滤 异步引入全局script 线上安装脚本 兼容PHP8.1

框架能够将业务代码和类库打包编译单独的文件。如果用过vue等框架则能够很容易的理解,基本上是将多个代码文件编译成少数的几个文件。具体的目标如下:

  • 代码文件合并
  • 代码变量混淆
  • 代码压缩

代码压缩和变量混淆

代码压缩和变量混淆的目的很简单,要求也比较简单,能够实现方法和函数作用域下的变量混淆即可。

代码文件合并

类库

能够将app下的所有类文件,打包编译成一个文件,对代码有一定的要求:

  • 只能声明一次命名空间
  • 只能定义一个类

函数文件

common.php等函数文件,合并为一个。

数据库迁移代码

进行简单的压缩即可,不能也不应该合并代码文件

编译处理Env文件和配置文件

将env的配置项编译到项目中。为了防止出现意外边界情况,尽量只在config下引用env。

打包到config后实际数据脱敏处理。

全局的配置文件支持在tp生命周期中设置,而不是以单独的文件存在。

开始编译将所有的文件移动到temp目录。(跳过部分目录,比如.git,runtime)将所有的调用编译成全命名空间的方式将Env的配置编译到代码中将标准的类库文件打包到一个文件,跳过不标准的文件将指定的文件目录使用压缩的方式编译将所有的类调用使用use别名调

原文标题:代码编译原理

原文文档:ulthon_admin

原文地址:https://doc.ulthon.com/read/augushong/ulthon_admin/63749eadcc091/zh-cn/2.x.html

原文平台:奥宏文档

2.x