symfony框架
一个成功的组织为什么要抛弃一个拥有活跃的开发人员社区的优秀开源Web开发平台? 这就是我要讲的故事。
如果您不熟悉eZ Systems的名称,请允许我们自我介绍:eZ是商业开源软件供应商。 我们提供了称为eZ Publish的内容管理系统(CMS)和平台,该平台不久将称为eZ Platform。 eZ作为数字业务的基础,在我们的开源CMS平台之上提供增值解决方案。
既然我们已经摆脱了闲聊,那么让我们开始吧:
在2011年左右,eZ决定“重新平台化”。 但是,这是什么意思?
这意味着重写软件的核心。 我们的目标是改变其工作方式以改进它。 本质上,我们甚至必须在外观上进行改进之前,必须仔细研究并加强产品质量。
让我首先描述当时的情况。 在2011年Spring,eZ Publish达到了4.5版。 这是从3.x一代开始的漫长系列中的最后一个,每个系列都基于2002年首次引入的相同内核,相同体系结构和相同代码库。
此时,eZ Publish非常稳定。 它以其强大的可扩展性,核心概念和代码质量而闻名。 与其他基于PHP的开源软件相比,它具有更“企业化”的形象。 这些概念非常先进,并且具有广泛的企业趋势。 它也为开发人员通过自定义和扩展它奠定了良好的基础。
这些功能无疑是eZ Publish成功的关键因素。 即使不是完美的,代码库也显示出了很高的质量,这对于PHP应用程序仍然是不寻常的。
它为开发人员提供了很多可以使用的功能:一个相当高级的扩展系统,一个Web框架和一个模板引擎。 eZ绝对处于基于PHP的Web应用程序平台和框架的前沿。
然后我们决定重新平台。
为什么? 因为我们的首要目标之一是重新开发核心业务逻辑(内容存储库及其API),因为现有版本的体系结构无法满足将来的可扩展性和云基础架构需求。
在第一个目标的推动下,另一个主要目标是扔掉我们的Web框架(模板引擎,控制器,扩展系统,缓存系统等),并用Symfony框架的完整堆栈替换它。 与某些其他系统一样,完全堆叠与部分使用Symfony框架完全不同,但这是另一回事了。
扔掉行之有效的东西真是疯狂,你不觉得吗? 当时,它引起了很多注意,但是时间已经过去,我们对我们的决定感到非常满意。
转移焦点
专注是第一位的原因。 每个公司,特别是基于产品的公司,都可以通过将活动集中在核心上来获得很多收益。
Web框架与内容管理系统相当分离。 它也是一种商品,成为商品没有任何负面影响-成功的商业都围绕商品。
当您可以专注于第二个框架时,就没有理由同时开发Web框架和CMS,这确实是我们的产品。
eZ Publish 3和4出现在一个没有强大的Web框架的时期,尤其是在PHP堆栈上,因此我们有自己的历史理由。 但是正如鲍勃·迪伦(Bob Dylan)所说,“时代在改变”。 十年后,情况就不同了!
因此,就像苹果和微软一样,他们并没有制造计算机核心的芯片。 或像GM和BMW一样,没有制造汽车的轮胎,制动器,排气管或计算机; 或像Sony,Canon,Nikon或Leica一样,他们并没有伪造数码相机的束缚者,我们决定不自己构建eZ Platform使用的框架。
社区之间的异花授粉
eZ之外有一个世界。 eZ 社区只是众多社区之一。 总体而言,我们需要(并且将永远需要)与其他社区保持联系-相互交流想法,思想,创新,经验和观点。
用一个夸张的词来说,这是关于促进跨人员,组织和应用程序的思想和项目的交叉授粉。
通过使用全球标准化的框架,我们可以实现这一目标。 像eZ这样的公司正在从具有不同议程,产品和业务模式的其他公司那里学习。 这种转变是关于产生新的想法,新的实验,以及加速创新思维,尤其是在我们的eZ思维系统之外。
为了说明这一点,我最近参加了由我们的一些合作伙伴Netgen等组织的一次会议-eZ和PHP 夏令营 。 在那里,我了解到,一些合作伙伴进行了结合eZ Publish的其他组件,如Sylius ,基于Symfony的一种新兴的电子商务解决方案,构建涵盖的内容管理和电子商务的全球解决方案。
这只是冰山一角。 通过使用最受欢迎的Web框架,我们的客户可以选择轻松地与许多最受欢迎的电子商务,PIM和CRM系统集成。
见证这种合作显然增强了我们的信念。 在一个封闭和孤立的世界中,这不会发生。
促进捐款
迁移到Symfony的第三个原因是要促进对eZ及其他领域的贡献。
过去,我们对eZ Publish的扩展有很多贡献, projects.ez.no有超过10,000个可用扩展。 过去,现在仍然是一群真正的人,他们分享和贡献。 但是,我们对eZ Publish本身的贡献较少,而对框架层本身的较深部分的贡献几乎没有,例如我们自己的模板引擎库。
对此的一种解释可能是它不需要相同的技能。 开发图书馆的人可能与开发网站和应用程序的人不同。
另一个可能的解释是,我们的框架已深深地隐藏在eZ中,人们没有动力去那里。 当然,某些社区成员将能够做出贡献,最终他们做出了贡献,但是对于普通的eZ Publish开发人员而言,这显然太复杂了。
通过依靠像Symfony这样的框架,我们鼓励eZ开发人员轻松地在各个层次上做出贡献,包括该框架。 如果愿意,他们可以为Symfony本身做出贡献,因为这是一个拥有强大社区的开源项目。 许多贡献者和大量资源使这变得容易。 他们还可以为Symfony构建通用对象(“捆绑包”),并可以与整个Symfony社区共享。
最后,我们受益于与eZ无关但共享相同需求的人们对核心框架的贡献!
使其更易于自定义和扩展
采用Symfony全栈的最实用的原因是要促进人们自定义和扩展eZ的方式。
与许多其他内容管理系统不同,eZ始终作为平台构建,并努力满足扩展和定制的需求。 您永远不能给开发人员足够的灵活性。 即使eZ Publish 4.x在这方面做得很好,我们仍然想抓住任何机会做得更好。
首先,我们从很多方面看待Symfony,因为我们也正在开发框架和库。 但是一年又一年,我们看到Symfony项目演变成一种非常有趣的事情,可以为我们的用户带来很多价值。
仅举几例:
- Twig: Symfony使用的基础模板引擎。 与我们以前的模板引擎相比,Twig在可用性和活动维护者方面有了明显的改进。
- 作曲家: PHP的软件包管理器和Symfony的很好的伴侣将PHP应用程序的部署提高了一个层次。 它更面向企业。
- 原则:数据库层为那些扩展eZ并访问其他数据集和其他数据库的人提供了很多服务。
- YAML: Symfony的语义配置带来了更现代,更易理解和有效的方式来处理设置和配置。
- HTTP缓存:本机的http“视图”缓存系统(我们为之广泛使用,我们为此做出了贡献)为开发人员提供了更多机会,使他们可以使用Varnish获得出色的性能,同时仍保持其在线内容的最新状态。
- 还有很多很多
这就是为什么eZ抛弃一些功能强大的东西,然后在家酿造更好的东西的原因。
还是认为此举很疯狂?
随着时间的流逝,我们一次又一次地听到社区中“传统” eZ开发人员的声音,他们是旧eZ框架的忠实拥护者,他们终于接受了变化并热爱它。 对于我们来说,这是最好的选择,因为它极大地验证了我们的选择。
从根本上讲,我首先阐述的四个原因具有相同的想法:
软件与人有关
而且您对他们越开放越好。 没有人们的使用,技术就什么都不是。 通过从自制框架过渡到标准框架,我们使大量开发人员更容易获得使用我们的解决方案的机会。 这是认识到我们并不孤单的一种方式,如果我们尝试自己做所有事情,我们也不会走太远。
开源是很棒的,但是如果坚持使用源代码定义,则会失去大部分功能。
开源之所以伟大,是因为它可以联系人们并帮助他们进行协作,尽管他们致力于不同的主题,不同的目标,不同的愿景和技能。
我们希望依靠开放源代码的软件基础结构,这当然是我们在Symfony之前所做的,因为我们所有的内部组件都是开放源代码的。 但最重要的是,我们希望依赖于我们自己的特定用例之外的许多人所使用的软件基础结构。 现在完成!
公开赛
不育系
本文是Robin Muilwijk协调的“开放式CMS”专栏的一部分。 分享有关使用开源内容管理系统(CMS)和诸如Drupal,Joomla,Plone,WordPress等平台的故事。
翻译自: https://opensource.com/business/15/3/why-we-ditched-our-legacy-framework-for-symfony
symfony框架