ZENLIX 3.5-2年后



从2013年开始开发应用程序系统,其历史在以前的出版物中有所描述:


我们在2017年停止发布新版本。 这并不意味着我们已停止陪同产品并进行开发。 事实是,在短时间内,我们有大型客户公司定期订购主要产品的定制,这就是为什么几乎所有项目资源都变成了支持大型客户的形式。

作为补偿, 我们发布了ZENLIX 2.95链接 ),供公众使用 。 值得注意的是,GitHub上的版本是与ZENLIX 3.x版本无关的产品。

在某个时候,我们开始意识到我们正在失去其他客户。 有必要对公司的支持政策做出重大改变。 一方面,我们受到护送协议的限制,可能会增加预算;另一方面,我们无力增加开发人员。 结果,命运给了我们这样的机会。

在2019年1月,一项客户支持协议到期了,我们对员工进行了重新格式化,以重新开始使用该产品。

开发开始


两年来,大多数使用的前端模块(js)和后端(php)都已过时。 因此,为了引入新功能和开发,有必要准备平台,以便将来可以利用最新的机会和资源,实现满足消费者需求的现代UI。

我们从后端开始,即将框架从Laravel 5.1升级到Laravel 5.5(LTS)。 有一些更新当前项目的选项,但是正如我们同事的实践所表明的那样,这是一个复杂且不合理的过程,因此存在代码重构陷入困境的风险,这反过来又将升级推迟了几个月。

我们选择了第二个选项。 为此,我们在Laravel 5.5(LTS)上初始化了一个干净的项目,然后基于ZENLIX的先前版本安装了所有composer-modules(最新的稳定版本),包括它们在Laravel服务文件中,生成了资源并对其进行了配置。 之后,我们开始了控制器,模型,迁移,模板,其他零件和业务对象的转移。 大多数基本方法都必须重写。 例如,授权/注册模块(可能通过第三方服务进行授权),完整的通知系统(可邮递队列)和其他模块。 它还具有其优势-我们在旧版本中发现了一些通知问题,并在新版本中排除了这些问题。 由于代码移植以及Laravel 5.5的使用,PHP的最低软件要求已提高:PHP> = 7.0.0。 因此,我们还重写了一些过时的旧功能和实现。

我们可以正式地说,现在ZENLIX 3.5 支持PHP 7.3 。 与3.x版本相比,向Laravel 5.5 + PHP 7.3的新版本过渡使应用程序速度显着提高了64%。

我们还重写并优化了nodejs微服务代码。 现在,它使用少了一个模块-排除了express。

我们更新了前端:Jquery 3.4,FontAwesome 5,Trombowyg 2.15和其他模块。
最酷的事情是我们现在使用webpack.mix.js,并在发布时从20-> 1生成最小化的js文件,从13-> 1生成css文件。 它还显着提高了内容显示客户端部分的渲染速度。

我们尚未更改产品开放度控制政策。 没有ioncube等 所有代码仍对我们的客户开放。 除了许可协议外,没有任何其他控制措施,该许可协议在一个组织活动主题的框架内严格管理产品的使用。



在新版本中,我们实现了几个便捷的功能

  • 禁用菜单项的功能及其功能。
    现在,管理员可以为所有人禁用模块:用户,组,消息,知识中心,日历,报告。
  • 更新系统和安装库仍然是瓶颈。 尽管他在本地代码中进行了更改,但我们希望管理员能够选择要更新的内容。 因此,利用支持大型公司的经验,我们在GitLab服务器上实现了这一点。 购买产品时,客户端将获得对git存储库的只读访问权限。 与使用裸git pull相比,ZENLIX控制台命令的外壳使该过程更软,更方便。 但这并不禁止使用后者进行合并。 产品更新系统现在仅可通过控制台运行(php artisan zenlix:更新)。 管理员仍然可以通过网络检查新版本,以及阅读有关发行/更新的信息/说明。 通过启动console命令,管理员将系统置于服务状态,并且更新过程开始。
  • 控制台安装系统,现在作为产品安装的主要类型。 (php artisan zenlix:install)允许使用用户名/密码来获取ZENLIX的版本,并进行基本配置。 在大多数情况下,该团队对于我们的技术专家来说非常必要,他们可以免费远程安装产品。

已经重新创建了用于创建新用户以及创建应用程序(用户选择)和许多其他次要更改的系统,这些系统通常会极大地影响成品的可用性。

另外,值得注意的是,我们使用以下软件准备了现成的VM映像(vmdk,ovf),该软件已经安装并配置了ZENLIX:

  • Ubuntu 18.04.2 LTS
  • Nginx v1.14.0
  • PHP v7.2.17-0
  • MySQL v5.7.26-0
  • 节点v8.10.0
  • Supervisord v3.3.1
  • Redis v5.0.4
  • ZENLIX v3.5

结论


总的来说,我们想得出的结论是,已将产品平台升级到最新的稳定版本(Laravel 5.5),全面支持PHP 7.3,具有稳定的产品更新系统(git),我们计划发布更频繁的稳定更新。 我们有许多来自其他自定义项目的有趣且方便的实现。 我们将逐步将它们转移到ZENLIX。 至少,我们将创建一个Android应用程序,用于创建和处理请求的完整API,用于事件和其他内容的Web钩子。

我们很乐意通过以下邮件回答您的所有问题: info@zenlix.com电报

Source: https://habr.com/ru/post/zh-CN450464/


All Articles