Joomla Google Summer of Code 2019

在 Benjamin Trenkle 的指导下,并受到此方向上早期努力的启发,Website Cronjobs 是由 ISCAS 的 OSPP '21 计划支持的项目。

关于我

我是一名来自印度的计算机科学专业本科生。作为开源软件的用户,我一直希望能以显著的方式为流行的开源项目做出贡献。这在两个事件中得以实现 - 过去一年我开始接触编程,其次我看到了关于 Joomla 的 OSPP '21 项目的问答。由我的大学校友和经验丰富的 Joomla! 贡献者组织的这个项目,让我了解了 Joomla!,起草了一份相当草率的提案(谢天谢地,它经受住了时间的考验),与社区和我的未来导师建立了联系,并作为选拔过程的一部分开发了一个简单的 Joomla! 插件

关于项目

并非所有的网站托管服务都提供对原生 Unix Cron 的访问。而且,如果他们提供,Joomla! 也没有办法从管理员后台管理这些任务。

因此,社区中的一些人提出了自己的解决方案,而另一些人则开发了自己的临时解决方案来适应个人用例。值得注意的是,其他主要的内容管理系统已经至少内置了某种形式的原生调度功能。这意味着 Joomla! 用户会遇到困难,Joomla! 本身也会在竞争中处于不利地位。

由于这些事实,Website Cronjobs 是 Joomla! 在 OSPP 2021 计划下提供给潜在学生开发者的项目之一。当我浏览 Joomla 的项目列表时,这个项目对我吸引力最大,部分原因是我对 UNIX 操作系统的经验,部分原因是因为这个项目试图解决的问题是我能够感同身受的。

项目目标

该项目有一个主要目标:在Joomla的生态系统中提供任务调度方法。调度生态系统的基石是一个组件和一个系统插件 - 目前在项目的仓库中开发。该组件本身负责调度和管理可配置的插件例程,然后由伴随的系统插件触发执行。

组件的目标包括在管理员后台管理任务的图形界面,以及与Joomla CLI集成,以提供从命令行直接配置和运行任务的方法。

至于调度和触发例程的方式,我们旨在提供两个主要选项:一种伪cron方式,作为在原生Cron不可用时进行懒惰调度的方法,以及与原生Cron的集成。

开发时间表

我提案中的时间表有些不连贯,部分原因是我对Joomla!的经验不足,因此对我将要完成任务的顺序不太了解。

目前,管理任务的模式-视图-控制器(MVC)大部分已完成,插件API也已实现。管理MVC预计在本周完成,之后我将开始开发主Cron任务插件和Web API。现在的目标是让管理工作流和Web API触发在8月16日的第一轮评估中准备好。

在时间表的后半段,我计划继续开发插件API的剩余部分、命令行界面、原生cron集成、控制台插件(用于执行脚本或程序),以及其他一些提供Joomla! 3.x中-cli文件夹常见例程的插件。

我会在Joomla志愿者门户这里发布详细的每周或偶尔的双周报告。

至此,我们结束了这篇博客文章。我希望这个项目和它的进展对Joomla社区来说和我一样令人兴奋。我想借此机会感谢我的导师Benjamin Trenkle,他全力以赴地指导我走正确的方向并保持势头。

如果您有问题或建议,或者想要指导项目的开发,我通过Twitter(@ditsuke00)和RingCentral都可以联系到我。我也欢迎在GitHub上的项目仓库进行代码审查。