Joomla 5正在规划中,与发布负责人会面
Harald:像许多其他的Joomla贡献者一样,我最初是通过Mambo开始使用Joomla的。但长期以来只是一个用户。几年前,我参加了一个Joomladay,并加入了社区。在这场活动之后,我通过加入JSST并后来成为3.9.3+和生产部门协调员,很快就在核心方面参与了进来。
Niels:我进入Joomla世界是通过Mambo 4.6,这是Joomla 1.0的直接前身。在那个阶段,我已经在各种各样的环境中开发软件超过25年了。Mambo是一个快速轻松创建网站的工具,这些网站可以随意扩展。然而,有些东西似乎还不够成熟(有些人可能还记得那个$mainframe怪物)。
我开始编写自己的CMS,原本打算能够使用Mambo扩展,但是当开发者造反并发布了Joomla时,我所听到的关于Joomla的计划和想法与我的目标不谋而合,所以我决定加入Joomla而不是自己做事。
Harald和Niels,你能提醒我一下你在Joomla中的参与情况,你之前是否参与过发布或规划Joomla的结构?
Harald:除了维护2年的3.9.3+系列之外,我还参与了现在的流程以及J4的许多其他方面。但我的主要工作领域是维护CMS和框架的稳定性。例如,防止向后兼容性中断,查看性能和安全,从事测试基础设施等工作。
Niels:在雅典举办的Joomla 4启动活动上,我有机会提出我对Joomla应该如何发展的想法。核心是解耦输入和输出与处理,这样“内容”就不会局限于网络,而是可以为所有可能的渠道提供服务。此外,还有一个所谓的“正交架构”,旨在确保某些服务(如访问控制、标签、工作流程等)可以无需额外代码对所有组件可用。
有些人对这种可能性感到兴奋,而有些人则坚决反对这种深刻的变革。最后,决定以小步骤开发Joomla 4,并将新概念视为一个指导灯塔项目,“Joomla X”。
我们为Joomla X设计的大部分内容最终都进入了Joomla 4。然而,由于对新架构的持续抵制,Joomla X团队变成了软件架构和战略团队(SA&S),将重点从提供概念代码转向向开发者提供架构建议。像Joomla X一样,SA&S由我领导。
我非常想了解您对J5的愿景,它应该包含什么,不应该包含什么,以及它的发展方向。
Harald:对于5.0版本,我希望看到所有已标记为弃用的所有功能和行为的彻底清理。在像Joomla!这样的软件项目生命周期中,功能会添加,代码库会变得更加复杂和难以维护。在Joomla! 4.0中,我们得到了一个更具前瞻性的架构更新。还引入了Joomla! 3扩展的b/c层,计划在5.0中删除。此外,新的事件系统应该完全取代旧的事件系统,包括定义良好的验证事件。
对于CMS的改进,我想说,CMS对PHP 8.1纤维的支持,因此支持Revolt或更深入的React PHP将是我在Joomla! 5.0中希望看到的特性之一。
另一方面,在向后兼容性和听起来很好但在Joomla!中不兼容的原则方面,我希望采取实用主义。对于b/c,保持它比在没有合理理由或polyfill的情况下删除它更重要。
Niels:到目前为止,我只能谈谈我的个人想法,因为尚未就Joomla 5的范围做出最终决定。
毫无疑问,摆脱旧负担是必要的——这是新主要版本的真正目的。如果存在完全的向后兼容性,那么就不需要5.0,4.x就足够了。因此,我们也可以充分利用PHP 8.1提供的迷人可能性。
在软件开发中,有一些普遍接受的原则旨在提高软件的可维护性、可扩展性和健壮性,即所谓的SOLID原则。这些原则建议尽可能严格地分离不同的关注点,并限制依赖项到接口。用非技术术语来说,这意味着任何功能都可以添加或替换为相似或不同的功能,而不会对整个系统造成问题。我认为,如果Joomla要适应未来,遵守这些原则是必不可少的。
插件是向Joomla添加新功能的一种简单而重要的方式。然而,用于调用插件的每个事件都使用自己的方法与系统中的其余部分进行通信。我希望标准化这一点,以便开发人员可以立即知道如何处理新事件,并在此领域实现自动化。例如,通过标准化,可以设想一个扩展,其中最终用户可以在低代码编辑器中点击创建自己的插件。
安装过程需要修改,以便Joomla和扩展程序可以通过命令行轻松安装和更新。理想情况下,我们使用Composer来实现,这是一个可以解决依赖关系并提供正确包的工具。这将为扩展程序开发者提供一种轻松的方式,包括第三方库而不会触发冲突。它还允许托管提供商通过他们的控制面板安装Joomla。网站构建者可以在一个JSON文件中描述完整的安装过程,并通过单个CLI命令进行设置。
Joomla向无头CMS发展的过程应该进一步推进。通过改进Web API和分离CMS和输出渠道,为网站构建者打开了全新的可能性。尽可能自动生成API端点和CLI命令。其中一个巨大优势是构建页面缓存的可能性,即存储可以由Web服务器直接提供并按需通过API调用加载动态内容的预渲染页面。
如前所述,Joomla 5自然不会与Joomla 4完全向后兼容。在可能的情况下,我们将提供在Joomla 4中已更改的架构作为对先前版本的替代方案,以使其向前兼容。因此,扩展程序的开发者可以在早期阶段对Joomla 5进行必要的调整。我还想使用Rector,这是一个可以以规则驱动方式重建程序代码的工具,以帮助开发者尽早使他们的扩展程序与Joomla 5兼容。
这些都是我希望在Joomla 5中看到的最重要的事情。还有许多小事情可以改进,或者只需要一点改进才能使其成为真正的优秀功能。然而,在这里列出所有这些将超出了本文的范围。
你们将如何合作,你们将共同负责同一领域,还是将任务分开,如果是这样的话,谁将负责哪些任务?
Harald:我们还没有讨论过这种工作方式,但我认为我们性格完全不同,关注点也不同。所以我认为Niels将尝试在开发周期和代码中引入结构,而我将尝试将其完成。Niels对架构和事物在完美世界中的样子有深入的了解,这真的很棒。我将尽我所能支持他,并做一些无聊的事情,比如清理和协调。
我们有两个版本负责人之一的原因是我们不想再花5年为下一个主要版本。我已经能够推动人们发布Joomla! 4.0,我相信我能够抓住Joomla! 5.0的时间表。
另一方面,我们不仅对Joomla! 5.0的发布负责,我们还拥有CMS发布团队和CMS维护团队的支持,所以我们与所有其他维护者协调,并继续与发布团队保持沟通。
Niels:这是一个很好的问题!我们还没有真正讨论过这个问题。
我认识Harald是一位简单解决问题的人。在我看来,他的焦点是现在和当下,关注当前问题,但不会忽视可能性。我的本质有些不同(即使我必须,并且可以强迫自己在日常生活中变得实用)。我首先看到可能性,并寻找实现它们的方式。如果我们已经有了这些,当前的问题就会消失。
因此,我相信Harald和我将是一个好的团队。当然,我们每个人都有自己的焦点,他希望或将要优先考虑。最后,我认为当我又要离开地面时,Harald总是会把我拉回地面。另一方面,我会鼓励他走得更远,因为这对长远来说是有益的。
我们还想比过去更加紧密地与CMS发布团队合作。
我理解您想听取我们社区所有人的意见,关于J5的想法和思考。我们最好的联系方式是什么?任何想法被考虑的时间框架是什么?
Harald:社区是我们最重要的信息来源,因此我们非常欢迎任何反馈、想法和愿望。稍后Niels会解释RFC流程,当然,您可以通过VP或Glip或其他任何渠道直接联系我们。根据想法的来源,它应包括所有必要的信息,如好处、原因、挑战、影响等。您的时间线非常紧张,因此我们非常希望您能尽快回复。
仅提一下,欢迎反馈,但也需要代码贡献。有想法是好的,但如果有人能实施它,那就非常有帮助。
Niels:哦是的,这对我们来说也非常重要。我们离产品太近,以至于我们有时看不到哪里实际上有缺失。Joomla是一个通用CMS,旨在满足尽可能多的应用场景的需求。这就是为什么我们非常重视模块化、灵活性和可扩展性。只有某些行业提出的特殊需求应保留为扩展。但在我看来,任何有助于所有CMS用户的东西都应该在核心中。这就是我们需要您输入的地方。
告诉我们您认为应该属于核心的内容,您认为缺少的内容,或应该改变的内容。
我们已经为这些目的建立了一个RFC流程。有关如何使用此流程的说明可在https://github.com/joomla/rfc找到。别担心,这看起来比乍一看要复杂!要启动流程,只需要两件事:一个总结,说明它是什么,以及一个理由(为什么这样做很重要)为什么它应该绝对被集成。如果您想使用邮件列表而不是GitHub来提交您的提案,请在主题行中标记为[Joomla 5]。
我们可以考虑在2023年2月之前收到的任何内容。然而,由于实施也需要一定的时间,越早越好。
核心和扩展开发者之间有紧密的协同作用。
有没有什么想法和建议可以帮助扩展开发者?
Harald:扩展开发者是CMS生态系统的重要组成部分。因此,我们希望尽快为他们提供J5的更改指南。此外,我们希望确保从4到5的扩展升级尽可能简单,例如,j4扩展应在j5上运行而无需太多修改。
Niels:基本上有两件事:首先,在alpha发布时,我们提前提供一个版本,其中已经包含了所有破坏性更改。如果开发人员使用这个版本向我们指出问题,我们仍然有机会进行应对。如果他们只有在发布候选版本时才这样做,那么船已经开了。
能否以我希望的方式使用Rector目前还不确定。
扩展开发者可以做些什么来帮助核心?在alpha和beta发布时进行更多测试是否有助于将反馈问题和问题反馈给核心?
Harald:是的!扩展开发者通常比我们更了解CMS。因此,任何帮助都将非常受欢迎。例如,尽快开始测试或贡献开发时间会非常好。
尼尔斯:当然!我们越早从开发者那里获得反馈,就越能考虑到他们的需求。当然,如果扩展开发者能够为开发提供人力,我们会非常高兴。总有太多的事情要做,而人手又太少。
Joomla 4 的创建经历了一段漫长的时光。您对 Joomla 5 有什么期望?您认为什么时间表是现实可行的?我看到 J4.1 在时间上受到严格的控制,计划在 J4.0 之后 6 个月发布,您认为这样的严格和可靠的发布计划对于一个主要版本来说是可能的吗?
哈拉德:正如之前提到的,这是我的目标之一。J4 的长时间开发对社区来说是一个大问题,我很高兴我们终于在 Joomla 的生日上发布了它。对于 Joomla! 4,我们切换到了 6 个月的发布周期,这意味着我们每 6 个月发布一个次要版本。基于此,我们计划于 2023 年 8 月 17 日发布 Joomla! 5.0。一旦开始开发 Joomla! 5,我们将立即制定所有里程碑的发布路线图。
尼尔斯:基本上有两种类型的发布计划:基于功能的或基于时间的。我们有一个政策决定强制实施基于时间的发布。因此,除非在那时游戏规则发生变化,否则 Joomla 5 将于 2023 年 8 月 17 日发布。对于我们作为发布负责人来说,这意味着我们必须在第一个 alpha 版本发布之前完成所有架构变更。之后,将不能再对架构进行更改。与此同时,将开发功能,这些功能必须在 beta 阶段开始前完成。从那时起,将仅修复错误。任何在此之后未完成的工作将不得不等待下一个版本。alpha 和 beta 阶段的准确时间目前尚未确定。请关注路线图以获取详细信息。
除了告诉你们我们希望在 J5 中看到什么之外,我们还能如何提供帮助?
哈拉德:我们接受任何我们能得到的帮助。由于 Joomla! 是一个 100% 以社区驱动的 CMS,它需要每个社区成员的参与。所以如果你喜欢编码,编写文档,支持我们的基础设施,测试 CMS,基于“现实世界”提供反馈,或者只是简单地想要说谢谢,每个人都欢迎。
尼尔斯:总是缺少三样东西:输入、反馈和人力。如果你愿意帮助 Joomla 并且能够编程,帮助我们实现。如果你愿意帮助 Joomla 并且能够写作,帮助我们编写文档。如果你愿意帮助 Joomla 并且能够沟通,帮助我们传播信息。如果你愿意帮助 Joomla 但上述都不适合你,请联系志愿者参与团队——他们将为你找到一个位置!
感谢,哈拉德和尼尔斯。
请通过他们的社区电子邮件与他们取得联系,或者将您的想法和评论添加到 GitHub 讨论中。这是一个由活跃社区使项目变得更强大的社区项目。
在 Joomla 社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能并不与 Joomla 项目官方立场一致
通过接受,您将访问https://magazine.joomla.net.cn/外部第三方提供的服务
评论 22
在运行了多年的Joomla 3之后,我们现在正试图将所有网站迁移到Joomla 4;而扩展开发者仍在考虑是迁移扩展还是放弃整个Joomla业务。
现在,你开始谈论Joomla 5和2023年的一轮新的弃用和重构(因为你总是移动类)。
今天,只有
- 3%的网站迁移到Joomla 4 (https://developer.joomla.net.cn/about/stats.html)
- 30%的扩展迁移到Joomla 4 (1,789 / 5,928 https://extensions.joomla.net.cn/)
作为一名顾问和扩展开发者,我认为您的策略是构建一个完全由核心团队管理的产品。您正在使CMS与您的想法保持一致。您只关心内部架构和少数更多的技术概念。您对组织商业顾问或扩展开发者生态系统没有兴趣。
我还在等待看到Joomla市场将走向何方。如果您也在乎这一点,那就最好了。
这3%的网站非常不真实。它计算了所有被困在Joomla 2.5到3.8的老网站,这些网站永远不可能升级到新的Joomla版本(图中网站的70%)。它也不会移除任何网站,即使它们永远没有ping过更新服务器。我收集的针对每月实际活跃网站的统计数据表明,近20%的网站已经在Joomla 4上了,这很令人惊讶,因为Joomla 3仍然受到支持,去年还推出了很多基于J3的新网站。
扩展程序的情况类似。30%的扩展程序已经转换为Joomla 4是一个非常好的迹象,考虑到近一半的扩展程序已经多年未更新,被新的核心功能所取代,或者已被更新的扩展程序所取代。这个数字意味着几乎所有积极维护的扩展程序都已经与Joomla 4兼容。与Joomla 1.5、1.6和3.0相比,那时候大多数扩展程序一年左右都无法与新的CMS版本兼容。
Joomla 4的采用情况实际上是相当积极的。
然而,我确实认为每6个月发布一次版本,不管是什么情况,都是有问题的,就像我们在1.6到3.2时代已经看到的那样。我想那里丢失了一些机构知识。
对我来说最烦人的问题是,这种发布政策意味着每年8月17日都会发布,正好是北半球的暑假中间。作为一个扩展程序开发者,我需要在发布前一个月保持高度警惕(因为直到稳定版发布,东西都在不断变化!),以及发布后一个月(因为稳定版确实有对最后一个RC的更改,总是)。这意味着我无法从7月中旬到9月中旬去度假。对于有孩子的任何人来说,这是不可能的:这是我们孩子一年中唯一不上学的时间,我们可以去度假。所以今年我要去度假,并在我的网站上发布一个巨大的警告,说明我们的软件可能不适用于Joomla 4.2。如果你珍惜你的理智,不要升级到4.2,直到10月1日。简单明了。
Joomla组织提供了这些数据。如果他们关心,他们应该基于这些数据开展工作。
你的数字是可接受的,但它们基于你的用户基础和经验。这与Joomla所代表的内容不同。你可以说你业务繁荣,但Joomla 4没有吸引新的用户。如果我们不能展示Joomla 4在整个市场上的增长,那么我们最后都会输。
重点是Joomla的使用统计数据计算了与更新服务器有过接触的所有Joomla网站,包括不再存在或不再更新的网站。因此,不同Joomla版本的市场份额将在足够长的时间内看起来是平衡的。
关于我的统计数据存在偏差的说法,不,它们并不存在。我每个月都有一个包含五十万个活跃网站的样本。Joomla的统计服务器报告了近290万个网站(https://developer.joomla.net.cn/stats/cms_version)。这比在具有统计意义的选举预测中获得的人口覆盖率要大得多(16.67% 对约2%)。任何了解统计学的人都会告诉你,我的误差在代表现实方面微乎其微。
你看到的Joomla论坛和问题跟踪器的活动与我所报告的数字如此接近,这应该为你提供了一个关于谁的统计数据更能代表客观现实的另一个轶事数据点。
正如我反复说的,真正的问题是Joomla的统计数据没有排除过时的结果。这对于决策来说毫无意义。例如,某人10年前使用的Joomla、PHP和MySQL版本对于决定下个月发布的Joomla 4.1的最小要求是毫无价值的。同样,任何不了解那个该死的图表如何工作的都会假设他们需要针对PHP 5.3到5.6以及Joomla 3.6,而实际上,PHP 5已经不再被支持,甚至无法在现代Linux发行版上编译,而Joomla 3.6在2021年12月只占活跃Joomla网站的不到0.02%。
你真的在争论Joomla 3.6和PHP 5是当今现实世界网站所使用的吗?你不可能这么天真。我比你更了解你,不会相信这一点。
我完全同意你的观点。我过去几年一直在重写扩展,最终使它们与之前完全相同——没有任何新功能和新功能。在Joomla 5中,遗留的MVC将被移除,这反过来意味着需要重写。所以未来几年,我将只重写,不添加现代或新功能或新功能。扩展的技术债务将超过极限。
这无疑会让人感到泄气。我周围的开发者已经在版本4的修改中完成了工作。我个人也没有动力去修改Joomla 5上的内容(毕竟不必要地移除旧版的MVC并替换成新的)。为什么?很简单,因为最终它只会升级到与之前相同的扩展。但我却会白白浪费两年时间。
最近,Joomla项目在我看来显得非常敌对且毫无功能。
- 如果你报告了一个核心的bug,你会被欺负、被追赶,并因为立即没有做公关而被指责(即使你做了,也会被忽略)
- 在Joomla论坛上,如果你插入一个文档链接以便更好地指导用户,你会被标记为垃圾邮件发送者
- 如果你试图说,通过移除旧版MVC,Joomla将失去90%的扩展,人们不会认真对待这个问题。
- OSM?这个功能不健全的组织还在存在吗?
对不起,但我就像周围的开发者一样,我根本不会有动力为Joomla 5重写扩展。只是为了重写两年,然后看到完全相同的结果——我只是缺乏这样的动力。
许多人会说这没问题,所以不要只有几个扩展。但这确实有问题。我看到周围的人找不到他们需要的扩展,纷纷离开Joomla。因为Joomla认为扩展不是必需的,因为核心很强大。
好吧,如果你这样认为,你有权这样认为。但我的统计数据已经说明了一切。从流行的CMS,我们到了人们甚至不知道Joomla存在的地方。
我有许多例子,其中一项功能在几年内变化了三次。内部变化非常频繁且不必要。多亏了封装,这种变化在表面上甚至是不必要的。但它们确实存在,这会打击开发者继续创建扩展的积极性。
请展示一些专门为Joomla 4编写的全新大型扩展?也许它甚至不存在。新系统已经变得过于复杂和抽象,不再吸引开发者。
让我们面对现实,我们无法吸引新的开发者,如果我们与现有的开发者作对,那么这个系统就会被遗忘。
请以我写下的方式理解我的话——与技术问题相关。我认识Joomla的核心开发者,我了解他们的观点和决策,我欣赏他们的工作——我只是在Joomla的发展方向上持有不同的观点。这并不意味着我不尊重他们的决定。
将你的扩展从传统的 MVC(追溯到 2005 年,首次在 2007 年的 Joomla 1.5 中发布)迁移到 Joomla 4 MVC 并不是那么困难。这非常简单。MVC 在 15 年间基本保持不变,这不是 Joomla 的成功,而是史诗般的失败:项目两次试图提出更好的替代方案,但两次都失败了。还记得 Joomla 1.6 和 3.0 中的“新 MVC”和“新新 MVC”吗?不记得了?正是。巨大的失败。第三次是幸运的,我们得到了 Joomla 4 MVC,这就是为什么 Joomla 4 如此之快!
你仍然使用相同的模型-表-视图-控制器(MVC)架构,使用相同的方法。如果你的扩展是传统的核心 MVC,你只需要做以下几步
* 命名空间你的代码(搜索和替换)
* 创建一个 boilerplate services.php 文件
* 调整你的 XML 声明文件
这是最基本的要求。
如果您愿意,您终于可以现代化您的代码库了
** 由于类是命名空间化的,前端MVC类可以扩展后端,无需重写相同的代码。
** 您可以创建自己的HTMLHelper服务,并在启动组件时神奇地使其可用,即使是来自插件或模块
** 您可以注入服务,而不是神奇地从上帝对象的静态方法中获取它们
记住,我不得不重构我在FOF 4中编写的扩展,这甚至更加复杂,因为我不仅要进行基本和现代化步骤,还必须几乎从头开始重写我的控制器、模型、视图和视图模板。
从2021年3月到2021年12月,我重写了10个扩展,除此之外,我还为我们的网站编写了一个全新的订阅管理扩展,为我们的网站创建了一个新的Joomla 4原生模板,编写了所有代码以实现自动迁移(仍在测试中,99%完成),报告和修复Joomla漏洞(包括全新的Joomla更新后端),所有常规扩展维护和支持,以及我们的幼儿在9月开始上幼儿园,这在全球大流行期间是如此常见的普通感冒病毒感染所涉及的,同时我还有ADHD,这使得集中注意力变得非常困难。
这并不难。此外,您将获得更加现代化的代码,这更有利于支持更新的PHP版本,运行更快,更容易维护。所有这些都会带来净收益。
亲切问候。
当我们刚开始从Joomla 3迁移时,谈论Joomla 5显然是过于仓促的。
现在,我们需要补充Joomla 4中的重要事项,例如,完成文档和视频教程的创建,并确保有更多与J4兼容的组件、模块和插件。
你们可以做的事情之一,是将元描述框留在编辑文章的同一选项卡中,这样更方便,不必在其他区域中寻找。
Joomla 5的想法不错,但首先让我们让人们对Joomla 4感到兴奋,重新赢得市场份额,使用简便,尤其是,确保CMS的管理不会给用户带来太大问题,使其变得简单是吸引社区成员的保证。
如果菜单扩展能与Bootstrap x协同工作那将很棒。现在Joomla 4的模板设计大量基于Bootstrap,但菜单扩展不是。这已经困扰了我们多年。已经使用Joomla 15+年,但这个问题应该得到解决。
我们已经知道使用composer安装Joomla不切实际,而且你们期望大家只在18个月内重写所有代码,这表明你们没有生活在现实世界中。正是因为这个(以及其他硬性中断),你们在雅典的想法被拒绝,j4的开发被推迟了18个月。
我们当然应该从过去的教训中学习,而不是重蹈覆辙。其他项目能够做到这一点!!
我在J4WG雅典会议上是反对Joomla X架构的那个人正如它被提出的那样。
我曾争论,提出的架构将使任何第三方扩展合理转换变得不可能,本质上创建了一个没有扩展的新CMS,这将迫使网站集成商和扩展开发者离开,转而使用其他成熟的CMS。此外,它将使最终用户难以管理。我稍后会回到这一点。
我们在周六上午争论了半天,然后我们进行了我们所有人参与的SWOT分析。SWOT分析得出结论,提出的架构,正如它被提出的,将对Joomla CMS造成灾难性的影响。
周日早上,我惊讶地听说SWOT分析的结果将被丢弃,那时即将推出的Joomla 4将继续按照新的提议架构进行。这就是我退出J4WG的确切时刻,也是我退出的原因。
那个架构最终没有走通,它被降级到Joomla X,旨在在OSM的庇护下创建第二个CMS,而可以挽救的部分成为我们现在所知道的Joomla 4的基础。这个小风波让我们浪费了我们本不多的两年时间,我们仍然在为此延误而感到痛苦。
关于正交架构,您可能还记得在丹麦的第一届J4WG会议——我参加了那次会议,因为我的信用卡由于希腊当时的资本管制而无法使用,所以我用钱包里最后一点现金付了账——我一开始是支持正交架构的,一旦您和Herman解释了它。我曾怀疑,一个最终用户是否可以在低代码环境中创建行为。作为您和您仍然拥有我对正交架构的承诺的证明,您可以看看我最初为Joomla 4做出的提交,我在Joomla 4中工作,整合事件,并将标签和版本管理转换为正交插件,这些都是目前发布的Joomla 4中的内容。
至于为什么我反对您和Herman提出的架构,我之所以这么说,是因为三个点的提出方式。
使用ORM来管理模式安装和更新。只有当您保证实际模式与上一个版本完全匹配时,更新才能正常工作。这在实验室环境中是可行的,但在现实世界的网站上则绝对不可能,因为网站可能在不同服务器之间迁移,可能已经应用了失败的更新等。这就是数据库修复功能存在的理由!使用ORM处理更新将使得实际用户无法以任何方式处理这些不一致性。我们可以使用ORM处理查询,但正如我所说的,这会带来巨大的性能成本。
中间件——您在这里所说的分离内容创建和展示。正如我告诉您和Herman的那样,从理论上讲,那很好,但在实践中,由于大量分发的扩展可能会互相干扰,所以不会奏效。纯形式的中间件只有在您对应用程序有绝对控制权并可以保证执行顺序时才会工作。当最终用户混合搭配代码时,没有好的方法来保证这一点。
扩展的Composer。早在2015年,我就预测这会导致依赖地狱。如果扩展A需要库X版本1,而扩展B需要库X版本2,它们就是互不兼容的——即使这两个扩展都是组件,保证它们永远不会在相同的执行上下文中同时运行!由于Joomla的3PD生态系统是一个由最终用户而不是开发者管理的广泛分发的代码环境,因此无法解决这个问题。目前3PD解决这个问题的方法是使用私有供应商文件夹和/或更改他们拉入的依赖项的命名空间。
在接下来的几年中,我也提出了这些问题的实际解决方案
数据库模式:使用一种条件性地应用SQL查询的解决方案,条件基本上是查询模式当前的状态。我在2015年至2021年间在FOF 3和4中使用过这种方法,取得了很大的成功。使用Joomla的愚蠢扩展更新器真的很难,因为现实世界的网站往往不符合声明的版本。无论如何,这可能是无关紧要的,因为我没有在任何地方看到关于ORM的提及。至于使用Active Record ORM,George已经分叉了我的FOF 3 & 4代码并对其进行了工作,但它有点停滞不前,并且不是Joomla 4的一部分。它可以被塑造并用于Joomla 5。
中间件:将中间件移至事件处理,并在应用程序请求生命周期内添加大量事件,这将使我们能够使用 Joomla 插件来实现中间件,其顺序可以通过图形用户界面来管理。我相信这是 Harald 得出的相同结论,因为他是一个实用主义者。
依赖关系:我建议扩展描述文件本身包含一个定义其要求的部分(以及可能从哪里下载),例如:操作所需的其它 Joomla 扩展。这将解决第三方扩展需要与所有扩展一起打包通用库包,并尝试确保以下情况的问题:a. 它不会覆盖新版本;b. 在使用它的最后一个扩展被卸载之前,它不能被卸载。您在低层次(Composer)上考虑这个问题,我在实用层次(扩展)上考虑这个问题。
至于事件,您可能已经看到我的 PR https://github.com/joomla/joomla-cms/pull/36578,在那里我不仅同意每种类型的事件都应该有自己的自文档类,我还开始将 Joomla 4 的核心事件转换为该格式,包括用于自动化开发人员迁移过程的助手代码。我完全打算参与这项工作。我相信事件可以取代传统插件处理。
从这篇文章的字里行间来看,您似乎认为我说“不”只是为了说“不”,或者因为我没有理解你提出的特性。这并不是真的。我说“不”是按照它们被提出的形式,因为它们与第三方扩展的连续性不兼容,并且用户无法管理。它们可以被调整并转化为实用的事物。
我完全相信 Joomla 的未来不是试图取代 Laravel、Symfony 或者连伪装成 CMS 的框架解决方案,如 Drupal。也不是试图取代 WordPress、Wix 和 SquareSpace。Joomla 有其独特的身份和目标受众,与这些产品不同。可以在不失去其身份和目标受众的情况下向两个方向扩展 Joomla。
很可能,我们在我们应走向的方向上都是错误的。真相可能就在中间。因此,我很高兴 Harald 是 Joomla 5 的共同负责人。他既是理想主义者,又是实用主义者。
我只有一个梦想:我希望 J5 的规划将由市场营销人员和社区需求驱动,而不是开发者。开发者需要成为创造优秀代码的强大力量。
Joomla 必须征服新的受众(用户和第三方),这只能通过根据用户和市场的真正需求塑造 Joomla 来实现。
*MARKET = 客户、管理员用户、网络机构(和自由职业者)、第三方开发者、搜索引擎、广告和社交平台、集成商。
上面提出了很多很好的观点。我想和Anibal(为什么这么急?)的观点产生共鸣,我有一份相当长的客户名单,他们的网站都在J3.9上。将他们迁移到J4需要一些努力,因此,被新版本进一步抛在后面的想法有些令人害怕。我看到了J4背后的很多良好思考和周密规划,我对此表示赞赏。我感到不需要征服任何特定的市场,更需要继续提供具有长寿命的稳定和可靠的工具。
上述评论正是我们需要从社区和扩展开发者那里听到的内容,以及了解他们的需求和期望。这是规划阶段,规划需要每个人的参与。
只要我们专注于理念和原则,而不是人,我就非常高兴,请务必添加您的评论和想法,并将这篇文章广泛传播。
这正是文章的目的,就是引发辩论,并寻求更广泛受众的观点和想法。
我希望Nelson不会介意,但我认为将他的评论翻译成谷歌翻译可能对更广泛的读者有用,这样他们就可以理解他在说什么
Nelson Fernando Bautista Pinzon
在我们开始从Joomla 3迁移之前,先专注于Joomla 4。
诚挚的问候。
在我们刚开始从Joomla 3迁移的时候讨论Joomla 5过于仓促。
现在,有必要补充Joomla 4的重要问题,例如,完成文档和视频教程的创建,并且有更多与J4兼容的组件、模块和插件。
他们可以做的事情之一是保留元描述框在编辑文章的同一选项卡中,这样更好,不用在其他区域搜索。
Joomla 5的想法是好的,但首先让我们通过获得市场份额、易用性以及最重要的是,使CMS的管理对用户来说不是一个大问题来激发人们对Joomla 4的兴趣,使其易于使用是赢得社区人们支持的一个保证。
将日期放在这里并明确表示有人在考虑5,其中一个原因是为了让人们对项目充满信心。
还有团队正在考虑4.1、4.2和4.3
如果发布负责人认为需要更多时间,那么就是4.4和4.5...重要的是要制定计划并尽力实现。
这有助于项目获得动力,只有真正坐下来工作,你才能对所需时间以及涉及的方面有一个很好的了解。
我很高兴看到人们已经考虑到这一点,并且是公开进行的,目的是获取社区的想法和意见。只有将这些旗帜插在沙子上,才能让人们提出想法和意见。我个人认为,现在考虑还为时尚早。这可能是最终交付日期过于雄心勃勃,但只有我们在处理问题时,答案才会出现。
对社区的一个有效回答可能是,在5之前增加几版,但没有提出建议,很难得到人们的意见。
Phil,很抱歉,但该组织不做任何基于用户反馈的事情。
只有少数人在GitHub上做出的贡献才重要。
产品和用户之间存在完全脱节。证据是每次产品转型,你只会失去用户。
你不仅会失去常规用户,还会失去试图与项目合作的志愿者的信任。根本问题是没有人喜欢被忽视。
嗨
我也很惊讶,我们已经在谈论 Joomla 5 了... 但最终它只是一个数字!但在我看来,Joomla 3 和 Joomla 4 之间的时间跨度产生了比其他任何东西都多的问题
最重要的是避免 Joomla 开发初期的技术断裂问题。除了某些不兼容的主题/扩展的情况外,我成功进行了多次迁移,没有在 Joomla 3 -> Joomla 4 中丢失数据
感谢开发者们
迁移帮助工具是基础性的,肯定应该得到改进!
许多发行版或软件每两年采用一些“技术断裂”的版本,每六个月采用小版本。
形式上,这种规律对每个人都很有保障。
一些开发者在支持他们的扩展时对 Joomla 版本的要求很严格。而另一些人对仍然支持 Joomla 1.5 的态度非常宽松!也许找到一个令人欣慰的折中方案,但坚持如果网站超过 5 年就需要迁移到 Joomla 4?
在我看来,用户或开发者都不应该成为领导者。没有开发者或没有用户的全球 CMS 会迅速消亡。尊重和仁慈是社区项目持久性的额外保证。
我梦想一个为基本需求进行的大规模用户咨询(对所有提案分配 20 分,就像 uservoice 一样)
致敬
嗨。
非常好,但在文章中我们只读到关于技术方面的内容。这里没有看到针对最终用户的内容。
我看到了4.0版本和5.0版本之间更多的不兼容性。
开发者们和策略/规划新的Joomla 5...没有,不再有兼容性问题!下一个Joomla版本必须具有向后兼容性。结束,完毕!
在一个企业中,每两年我都不确定开发者是否会更新他的扩展,我依赖的插件。
抱歉,但没有人...没有人询问用户在新的版本中需要什么。(目前 )
- Joomla 4核心不支持Open Graph - 真的,社交媒体无处不在...你必须依赖一个插件..如果有人不将其更新到5.0版本呢?
我有一种印象,从技术角度讲,Joomla想要成为顶级的顶级(这是好事),但它忘记了谁在使用这个CMS以及它是用来做什么的。
我从mambo时代就开始跟踪Joomla市场。每个新版本都会缩小市场。没有市场 -> 没有人。没有人 -> 没有开发者。没有开发者 -> 没有钱。没有钱 -> 没有CMS。
有时我看到GitHub上有的人提出了好的解决方案,但开发者因为不喜欢这些想法而否决了这些想法。
改进建议。
- 在线下载扩展(检查与版本和子版本的兼容性。)
- 更好的UX(用户体验)用于SEO元数据等。
- 更好的UX用于多语言翻译。
- 通过社交媒体/邮件登录
- 恢复Open Graph并将其扩展以满足其他平台的需求。
- 保持至少5-6年的向后兼容性维护。
- 模板应该在多个主要版本上运行。(这样创建的网站才能在核心Joomla更新后生存10年。)
- 确保大型第三方公司(如SAAS)愿意为Joomla编写扩展/插件/集成。(市场营销团队进行广告宣传、赞助、公司文章、社交媒体广告等。)
我也认为现在是时候稍微改变一下你的方法,并开始奖励($$)那些开发Joomla的人和那些花费时间创建文档或营销的人。你必须开发一个系统来鼓励人们贡献。类似于年度奖项xyz类别和一些钱$$。由员工和用户投票。
同样,对于发现安全问题的个人,也应该有一个奖励系统。为发现者提供一点奖励。
问候。
这里有一个革命性的想法,[粗体]完全支持Joomla 4和Joomla 3[/粗体],直到J3达到生命周期的终点,然后你可以将开发精力转移到Joomla 5上。
作为一个练习,[粗体]生产部门[/粗体]可以帮助组织以最佳方式将站点迁移到Joomla 4,以展示Joomla 4的优势。
大家好,
有些人现在就开始考虑Joomla 5,我认为这本身并没有问题。
然而,我担心,这一次关注的焦点似乎又回到了我认为对实际的Joomla用户来说并不重要的事情上。
所以我希望看到焦点从PHP内部,从框架(我认为这已经足够满足任何人在Joomla中想要做的事情)上转移开。
- 在可预见的未来,即使在主要版本发布时,也能保持100%与PHP的向后兼容性
- 完全专注于后台,以及整体用户体验,使其更符合大多数人日常生活中的现代用户界面和体验。
虽然Joomla 4的界面进行了视觉上的刷新,但它仍然采用相同的旧式完整页面刷新体验,因此与人们日常使用的内容不完全一致,因此这里有很大的改进空间,这些改进应该会给项目的用户带来价值。
作为一个额外的且更技术性的注意点,允许Joomla API应用与后台或前端共享会话将非常有趣,这样API就可以使用常规用户凭据,因此可以受益于Joomla本地的ACL。目前,这是API的一个严重限制。
最好的问候
Yannick