关于php:☘-gMIS吉密斯升级xTree图片水印等批量优化改进

34次阅读

共计 4239 个字符,预计需要花费 11 分钟才能阅读完成。

“对资本家和企业家予以鄙视,这是当初极一般的事件。人,总喜爱讥笑比本人的境遇更好的人。“

——米塞斯 Mises:人的行为 Human Action,https://ufqi.com/news/ulongpa… Human Action-72:抉择的过程

How many roads must a man walk down, Before they call him a man, … The answer is blowing in the wind…

—- Blowing in the Wind , Bob Dylan

☘ gMIS 吉密斯继续更新改良,这可能是 gMIS 自 10 多年前被推出以来,改良最多的一次,或者是记录改变性能点最多的一篇 Blog 文章。其中既有新性能的减少,也有对问题 Bug 的批改,更有一些是将现有性能推高到一个新的程度。

倡议 gMIS 老用户在适合的时候,安顿降级更新。

gMIS 吉密斯 继续改良细节,备注列如下。

  1. xTree:对有限宽度和深度的层级数据反对

如同咱们在之前 Blog:分类、层级与编码(https://ufqi.com/blog/classif…)和 -gMIS 更新: 主动层级目录(https://ufqi.com/blog/gmis-up…)中探讨的一样,咱们在层级目录数据中,既可能遇到无限宽度和深度的层级目录数据,如行政地区编码,也可能遇到有限宽度和深度的层级目录数据,如文件目录。或者区块链。在后一种数据结构中,咱们无奈提前预知在某一层级有多少并列项(宽度),也无奈预知到底会有多少层级。

为满足这种数据结构,咱们设计和实现了 xTree 的输出与输入功能模块,用于反对对这种只晓得父节点数据结构。新增了 extra/xtree.php 和 class/xtree.class.php . 能够反对有限宽度和有限深度的目录数据类型。

这一新出炉的性能,已胜利部署和利用在 Boss 选址(老板选址,bossxuanzhi.com)我的项目 和 有福工坊(UfqiWork, ufqi.com/work)我的项目上。

  1. 改良对 Preset 环境变量的反对,pnskxxx=yyy
    + act/preset-vars.inc.php,得益于咱们所设计的功能强大的 Page Navigator 组件,gMIS 能够通过 URL 参数主动生成对应的查问 SQL 语句,在爱护平安的同时也同时提供了便捷的数据查问性能。

其中通过 Page Navigator Search Key(pnsk) 形式能够在关上相应表单时,传入查问条件. 这次改良岂但在查问读取时应用 pnsk 等传入条件,在新增记录等环节,也能够读取和应用 pnsk 代入的预置条件。

  1. 改良对点选 pickup 反对:减少筛选条件
    在此之前 pickup 点选时,总是全表扫描记录,并生成各种点选候选项。此次改良,将点选候选项中植入预置条件,使得点选候选项对以后后果集更加具备针对性。
  2. class/gtbl, 改良 _fillThis 对环境变量的反对
  3. comm/ido.js:改良对 pnskxxx=yyy 环境变量的反对
    同 2. 和 3. 的改良,在前端页面管制处,也减少相应的前置条件的应用。
  4. 改良对 extra/linktbl 的反对,减少 linkfield2, linkfield3 的扩大
    标间嵌套式,默认状况下应用外键字段进行索引,本次降级改良,应用两个及以上的字段作为条件进行标间嵌套应用。

7.1. 改良对 extra/xdirectory 的反对,减少缓存性能
此前版本的设计中,没有思考对读取目录进行缓存设置,这次改良针对目录类型数据在服务器端进行了缓存。使得数据处理速度更快!

7.2. 改良 extra/xdirectory 的性能,减少按英文字母或中文拼音排序显示 iname 的性能

class/xdirectory, +sortDir, +getChild, +sortByGbk
inc/config, +character_code_for_sort,   ascii, gbk, utf-8, see extra/xdirectory, Sat May 22 18:26:20 CST 2021

这是本次改良的重要性能之一,gMIS 中应用了很多目录类型的数据,目录类型的数据通常都须要依照层级进行安顿,而如果利用层级进行安顿,在相等层级下,无奈进行二次排序,导致应用起来多有不便。

这次改良就是把数据先按层级进行组织安顿,而后在雷同层级内,再按字母或拼音进行排序。对于大大量级目录数据的应用,操作人员能够疾速的按拼音或者字母进行选项定位,而不只是靠目录层级进行人工查找。


模块化设计,指标数据无关 / 独立,使得所有此类型的数据均可应用,默认失效。强烈建议降级,极大晋升数据处理效率,升高操作人员工作负荷。

  1. 改良关联菜单的动静参数反对
    通过读取菜单表设计的动静参数,并追加到相应的关联菜单的链接上。
  2. 改良 act/updatefield 的性能
    + 修改 bug,减少安全检查

10.1. 改良文件上传性能

+ 减少在线资源地址的援用

针对文件上传只有本地文件的状况,gMIS 减少了针对在线资源的反对,通过输出在线资源地址,如 http/https/ftp 等协定的在线资源文件进行反对,容许作为上传文件的形式之一。

+ 修改对上传文件的安全检查

修改对上传文件的安全检查,强化对文件名的正则匹配表达式的查看。

10.2 改良对文件类型字段 isImg 的判断

+ 减少对蕴含问号? 文件名的查看。
  1. 改良对字段默认值的计算算法
    + 修改将 field comment 误读为字段默认值的 MySQL 援用。
  2. 改良对 comm/modulepath.inc 的反对
    + 减少 dynamicpara 在导航门路中。
  3. +class/WaterMark.class, 对常见的上传图片进行打水印操作
    配置文件 inc/config.class 中,减少设置开关:
    $conf[‘watermark_for_upload_image’] =“”; # whether to put wartermark onto uploaded image or not, leave blank
    if not watermark needed, Fri May 28 11:27:44 CST 2021

基于 PHP 内建的 GD 库进行透明度较高的打水印操作。使得通过管控后盾上传的本地文件上传公布后可能携带上专有标记的水印 Mark。
通过在 inc/config 文件中能够设置水印中的文字,如果留空则示意不须要水印操作。

水印操作对于爱护自有图片等资源具备肯定的作用。同时半透明、不规则图形、处于图片两头区域这些特色使得在不毁坏原图的状况移除水印变得绝对艰难。这些在肯定水平上给自有资源一些爱护,同时也是对自有品牌的宣传。

互联网烧钱和平火拼 10 年

  1. 修改工具箱函数 comm/tools.function 里的 startsWith 和 endsWith
    由原来过于严格地判断判断 same value 并且 same type 为相等 === , 改为只判断 same value 相等 ==,使得相应函数表述意义更精确,修改了此前的 bug。
  2. 其余一些小的修改和改良。

—-

一个看似简略的管理信息系统软件,咱们制作了也应用了 10 多年,仍然是大幅度地改良和降级,其中既有对谬误的勘误,也有与时俱进地新性能的退出。其中的历程,正如文章结尾的歌词所唱的那样,一个男人要走过多少起伏坎坷路能力被称之为“男人”?一个系统软件要通过个日日夜夜的打磨,多少次的降级、改良和优化,能力被称之为一个“零碎”?

操作系统微软视窗零碎从 3.x 起,历经近 30 年,成为目前出现在公众眼前的 Windows 10.x。gMIS 吉密斯曾经多岁了,将来 10 年 gMIS 吉密斯会成长进化成什么样?
一起期待,独特打造。

—-

gMIS 吉密斯,截至 2021 年 6 月份,累计更新了 379 commits,
每年大概 34 次成批次的更新,
除节假日外,均匀简直每周都有一次更新递交到代码库。


-gMIS (general Management Information System,吉密斯) 是一种基于 -GWA2 (General Web Application Architecture,吉娃兔) 的通用管理信息系统应用软件,具备可配置的输出和输入接口、开箱即用等特色。

能够在 gMIS 吉米斯 上构建各种治理信息利用系统软件,例如:
内容管理系统(CMS), 客户资源管理 (CRM), 企业资源打算治理(ERP),
办公自动化零碎(OA)等,
也能够是各种行业利用治理系统软件,例如:
人力资源管理系统(HR),学生治理,档案管理,游览治理,图书治理,
商品治理及业务经营撑持零碎(BOSS)等等。
gMIS 吉米斯 可能实现零代码开发、数分钟内疾速搭建各种管理信息系统(MIS, Management Information System).

-gMIS is a -GWA2 based Management Information System (MIS) software with characteristics like configurable input and output interfaces, open-box-to-use.
Various management application software systems can be built on it, such as
Content Management System (CMS), Customer Resource Management (CRM), Enterprise Resource Planning Management (ERP),
Office automation systems (OA), as well as different industry application management system softwares, such as
Human Resource Management System (HR), Student Management, Archive Management, Tourism Management, Book Management,
Commodity management and business operations support systems (BOSS), etc.
With zero code development, -gMIS can build a set of management information systems (MIS) software in a few minutes.

Lower Costs,
Better Productivity.
降低成本,
提高效率.

http://ufqi.com/blog/gmis-upd…

-R/j2SS

正文完
 0