Joomla! 框架的过去一年

还没有读者喜欢这个。
open source button on keyboard

Opensource.com

Joomla! 以 Joomla! 平台和 Joomla! 内容管理系统 (CMS) 而闻名。去年年底,又增加了一个新成员: Joomla! 框架。许多人说这是一个令人兴奋的项目,具有创新性的开发,因此我们采访了我们自己的 Don Gilbert,他一直在协调该项目的工作,以了解项目的进展情况以及最新动态。 

关于 Don

28 岁,居住在芝加哥郊区

大约在 2011 年开始活跃于 Joomla! 社区,在邮件列表中提问和回答问题

为 Joomla! 平台、 (CMS) 以及现在的框架做出了贡献——此外,他还一直是 Bug Squad 和 Security Strike Team 的成员

是什么激励您成为 Joomla! 的一份子?

Don Gilbert对我来说,最主要的激励因素之一是社区。关于它的一切都很有趣而且令人惊叹。我喜欢能够贡献代码和知识,这些代码和知识实际上可以帮助人们。这本身就令人鼓舞。

另一个激励我的因素是,在我的工作中,我们使用 Joomla! 作为我们客户项目的首选平台。虽然 Joomla! CMS 的架构允许快速开发应用程序和自定义网站,但在架构质量方面略有不足。不过,请不要误解我的意思;对于 2005 年启动的软件来说,出现这些问题是意料之中的。正因为如此,大约两年前我开始深入参与该项目,尽我所能为所有开发者(而不仅仅是我自己)做得更好。


查看完整的开源硬件周文章合集

今天,Joomla! 已经八岁了,仍然遵循当时的一些设计模式。我们都知道,几年前好的东西今天会被嘲笑。顺便说一句,我们今天正在做的任何事情,我们都会在 5-8 年后回顾并说:“当我们实现它时,我们在想什么?” 这归因于许多因素,但主要是由于 Joomla! 编写所用的语言 PHP 的发展。过去几年带来了某种“PHP 复兴”。在过去的四年里,该语言发布了比之前四年更多的版本和功能。这意味着 Joomla! 生命的前半部分是使用遗留软件和遗留“最佳实践”构建的。鉴于我们是一个开源项目,并且拥有非常庞大的用户群,我们无法像我们希望的那样立即采用新的语言功能。

然而,现在已经足够长的时间,我们能够开始采用当前的“最佳实践”,并利用当前的语言功能。实现这一点是我受到鼓舞的原因。

您是如何开始使用 Joomla! 的?

我在伊利诺伊州罗克福德一家非营利公司工作时开始接触 Joomla!。我最初在艺术部门工作,但很快意识到我更适合在 IT 部门工作。在我转到 IT 部门之后,我们正处于将所有 Joomla! 网站从 1.0 迁移到 1.5 的过程中,我参与了其中。我在那个环境中学到了很多东西,几年后就非常擅长了。我开始为芝加哥一家公司做自由 Joomla! 工作,他们非常喜欢,以至于他们聘请我成为全职员工。我已经在那里工作了四年,并且不后悔任何事情。我在这里非常高兴,并且每天都可以使用 Joomla!。

许多人熟悉 Joomla! CMS,您能否解释一下 Joomla! 框架是什么,以及它是如何如此迅速发展的?

框架的诞生源于核心开发人员的需求,他们需要一个更灵活的平台,在该平台上使用他们在为 CMS 编码时使用的相同开发范例来构建不同类型的应用程序,但又没有 CMS 环境带来的所有额外开销。

框架中的代码是 Joomla! CMS 中 /libraries/joomla 文件夹的现代化和清理版本。这是为 CMS 提供支持的相同代码,也是我们的第三方开发人员在构建扩展时使用的代码。大多数代码已经存在很长时间了,我们能够对其进行现代化改造和重构,以遵循当前的最佳实践,例如依赖注入、单元测试和更好的面向对象设计。因为我们有一个庞大的代码库作为起点,所以只需清理并实现一些缺失的功能和包,我们就可以拥有一个与 Symfony、Zend 或 CakePHP 处于同一水平的成熟框架。这真是一次惊险的旅程。

Joomla! 框架背后的团队是谁?

Andrew EddieIan MaclennanMichael BabkerDavid HurleyRouven Wessling我自己。除了“核心维护者”之外,我们还有一个庞大的开发者社区,他们持续为该项目做出贡献。超过 110 位开发者为该项目贡献了代码、测试和文档。

如何开始为框架做贡献?

当我们第一次开始开发框架时,我们将所有代码都放在一个存储库中。这有助于我们处理一起影响大量代码的问题,例如 composer 更新和样式问题。过去一年一直是这样设置的。在那段时间里,我们发现了一些这种方法的问题。主要是,当您有一个代码更新影响单个包时,您想要发布该更新,但该更新不足以保证整个框架的新版本,该怎么办。

因此,上周末我们对框架存储库的结构进行了更改。我们不再将所有代码放在一个处理所有拉取请求和问题的存储库中,而是将所有单独的包移动到它们自己的存储库中,现在它们处理自己的问题。这也允许每个包遵循自己的语义版本控制发布计划。如果我们有一个针对单个包的错误修复,或者我们想要完全重写一个包(我们正在对路由器执行此操作),我们现在可以做到这一点,并在准备就绪时发布更新。

您可以在 GitHub 上找到 Joomla! 框架包。

您会向其他正在或想要使用开源的开发者推荐哪些资源?

参与进来。创建一个 GitHub 帐户并开始关注您最喜欢的项目。没有太小的贡献。即使是像修复错别字这样看似微不足道的事情也受到赞赏和欢迎。不要忘记每个人都是从某个地方开始的。我通过加入邮件列表并在我力所能及的地方回答问题,开始在 Joomla! 社区中成名。我还参与了为 CMS 代码编写单元测试,并做了其他人不想做的繁琐工作。如果您对您希望在项目中看到发生的事情有愿景,那么天空才是极限。不要让任何人告诉您这是不可能的。


查看完整的开源硬件周文章合集。


标签
User profile image.
Joomla! 是一个屡获殊荣的内容管理系统 (CMS),它使您能够构建网站和强大的在线应用程序。包括其易用性和可扩展性在内的许多方面,使 Joomla! 成为最流行的网站软件。最重要的是,Joomla! 是一个开源解决方案,所有人都可以免费使用。

2 条评论

Joomla 框架是个好主意,但它并不完美。Joomla 框架造成的两个主要问题是

- 低效的 ACL 可能会因最轻微的用户错误而在站点上造成灾难性问题。
- 每个内容项都必须在 assets 表中有一个条目,这意味着将内容从一个 Joomla 站点复制到另一个站点不仅仅是复制 #__content 表。
- 许多性能问题。

是的,Joomla 1.5 的组织性较差,但它比后来的 Joomla 版本更具性能的 CMS。

感谢您的支持!我也认为框架是个好主意。 :D

关于您担心的问题,我认为您将 Joomla 框架与 Joomla CMS 混淆了。框架当然还有很长的路要走,但它没有您描述的这两个问题。您提到的功能在 CMS 中。

© . All rights reserved.