认识 Symfony
- Symfony 是什么?
- Symfony 概览
- 为什么要使用框架?
- 我什么时候应该使用框架?
- 使用 Symfony 的六大理由
- 通过 6 个经验了解 Symfony 的技术优势
- 选择正确框架的十大标准
Symfony 是什么?
>Symfony 是一组 PHP 组件、一个 Web 应用程序框架、一个 Philosophy 和一个社区 — 它们协同工作。
Symfony 框架
用于创建网站和 Web 应用程序的领先 PHP 框架。构建在 Symfony 组件之上。
Symfony 组件
一组解耦且可重用的组件,最佳 PHP 应用程序就是基于这些组件构建的,例如 Drupal、Prestashop 和 Laravel。
Symfony 社区
一个由来自 120 多个国家/地区的 600,000 多名开发人员组成的充满激情的团队,他们都致力于帮助 PHP 超越不可能。
Smfony 理念
拥抱并促进应用程序的专业性、最佳实践、标准化和互操作性。
Symfony 概览
>Symfony 是一组 PHP 组件、一个 Web 应用程序框架、一个 Philosophy 和一个社区 — 它们协同工作
一个 PHP 框架
为了更好地理解框架是什么,让我们暂时离开计算机科学的世界,想象一下一次登山冒险。开发应用程序与攀岩墙非常相似:您处于底部(您有一个应用程序要创建),您需要达到顶峰(并为设计出完美运行的应用程序而感到高兴)。
如果没有人爬过有问题的墙,你将不得不自己过日子:测试路线,偶尔回头,以免被困在角落里,在坑中驾驶,等等。相反,如果墙已经被征服,那么那些在你之前去过的人已经完成了这种试错工作,开辟可能的路径(框架)并安装有助于攀登的工具(你的工作)。
基本上,框架包括:
- 工具箱 - 一组预制的、可快速集成的软件组件。这意味着您将不得不编写更少的代码,并且出错的风险更小。这也意味着更高的生产力和投入更多时间去做那些能提供更大附加值的事情的能力,比如管理指导原则、副作用等。
- 方法 – 应用程序的“组装图”。结构化方法乍一看似乎很有限制。但实际上,它允许开发人员在任务的最复杂方面高效工作,并且使用最佳实践可以保证您开发的应用程序的稳定性、可维护性和可升级性。
虽然这很明显,但我们认为最好还是这么说 – Symfony 是一个 PHP 框架,这意味着它允许用 PHP 构建 Web 应用程序!
一个理念
还有什么比用户为满足自身需求开发的应用程序更有用的呢?这就是 Symfony 的起源故事 - 诞生于 SensioLabs 的 Web 设计师的想象力,SensioLabs 本身就是一家 Web 开发人员。Symfony 在开源许可下可供所有人使用。这对其他开发人员有利,他们也能够通过添加自己的模块来改进它。所有这些都是在最佳实践、标准化和应用程序互操作性的环境中完成的。
一个社区
在 Symfony 的背后,有人。一个庞大而多元化的开发人员社区,遍布世界各地。
为什么要使用框架?
框架并不是绝对必要的:它“只是”可用于帮助您更好、更快地开发的工具之一!
更好的是,因为框架为您提供了确定性,即您正在开发的应用程序完全符合业务规则,它是结构化的,并且既可维护又可升级。
更快,因为它允许开发人员通过重用通用模块来节省时间,以便专注于其他领域。然而,它从未被绑定到框架本身。
投资于任务,而不是技术
这是框架的基本原则:不必重新发明轮子。并消除不祥的、低附加值的任务(例如,开发通用组件),以便完全专注于业务规则。
例如,框架将使开发人员不必花费 2 或 3 天来创建身份验证表单(这不是一项特定任务)。节省的时间可以专门用于更具体的组件以及相应的单元测试;为您提供可靠、可持续和高质量的代码。
保证可升级和维护
从长远来看,框架可确保应用程序的生命周期。如果开发团队按照自己的意愿工作,则只有该特定团队才能轻松维护和升级应用程序。发布者支持专有解决方案的方式。
另一方面,框架为应用程序提供的结构可以完全避免这个陷阱,它使任何开发人员 - 无论他们是否参与其开发 - 都能够轻松“采用”应用程序,随着时间的推移维护它,并在必要时快速、整洁地升级它。
在这方面,框架不是黑匣子!在 Symfony 的情况下,它仍然是 PHP......开发的应用程序不仅限于 Symfony 世界,例如,它们本身可以与任何其他 PHP 库互操作。
我什么时候应该使用框架?
如果您能找到一件现成的、与您的装饰完美匹配的家具,为什么还要定制一件家具呢?对于计算机应用程序来说也是如此:在开始创建框架之前,需要进行一些调查工作。
一般需求与特定功能
除了框架之外,还有其他可用于开发网站和 Web 应用程序的解决方案:CMS(内容管理系统)及其补充模块,以及打包的专业解决方案(CRM、电子商务解决方案等)。如果它们的原生功能完全符合您当前和未来的需求,毫无疑问:那就去做吧!重新发明轮子是没有意义的。
另一方面,当存在特定需求、特定业务规则甚至需要混合构建块(例如内容和电子商务)时,框架解决方案是必要的:它允许开发完全匹配您的应用程序既满足当前需求,又保持创新。
正确的问题
为了确保您做出正确的选择,无论是短期还是长期,有必要提出正确的问题:
- 我目前的需求是什么?它们是否包含在打包解决方案中?
- 如果我选择框架,我需要哪些技能?
- 开发的解决方案可以升级吗?
最后,不要陷入“需求明显简单”的陷阱。在许多情况下,很快就会发现要实现的业务规则和功能并不是那么容易落实到位。
顺便说一句,Symfony 也非常适合小型项目。
使用 Symfony 的六大理由
使用框架是一件好事。做出正确的选择甚至更好。以下是从战略角度使用 Symfony 的六个充分理由。
1. 声誉
自 2005 年推出以来,Symfony 迅速被活跃在该领域的专业人士采用,如今,Symfony 已成为一个在国际上知名并得到认可的稳定环境。其引用数量证明了这一点,因为自发布以来它们已显着增长。 Symfony 也是一个活跃的社区;参与该工具持续丰富的开发人员、集成商、用户和其他贡献者。
2. 持久性
Symfony 最初是由互动机构SensioLabs创建的。 Symfony 由专业人士为专业人士设计,首先是一个实用的工具,其功能可以满足现实世界的需求。
持久性也与长期支持有关。 Symfony 的专业支持由 SensioLabs 提供,但自推出以来,Symfony 周围还形成了一个完整的生态系统:社区(Slack、GitHub Discussions 等)和许多其他投资该框架的服务公司。
最后,也是出于可持续发展的考虑,Symfony 在开源 MIT 许可证下分发,该许可证不施加任何限制并允许开发开源以及专有应用程序。
3. 参考文献
内联网、主要公共站点、社交网络、社区站点、管理和工作流应用程序等。例子并不缺乏:数百个各种规模和各种类型的站点和应用程序信任 Symfony。
Yahoo!、Dailymotion、Opensky.com、Exercise.com 甚至 phpBB 和 Drupal 等应用程序尤其如此。
4. 创新
Symfony 具备您对框架所期望的一切:速度、灵活性、可重用组件等。然后是已开发内容的结构和最佳实践的使用。不错!
但这还不是全部!由于 SensioLabs 已经养成了改变既定秩序的习惯,并且始终追求卓越,Symfony(及其整个社区)已经培养了一种远远超出 PHP 的好奇心。我们毫不犹豫地通过在其他地方寻找想法来进行创新,然后将它们适应 PHP 世界,例如来自 Java 世界的依赖注入。
此外,Symfony 为了不断提高开发人员的工作效率,设想了“Web 调试工具栏”,该工具栏取自其他框架,无论是 PHP 还是其他框架。
5. 资源
使用 Symfony 时,您绝对不会“独自面对屏幕”。无论是社区支持(邮件列表、IRC 等)还是公司支持(咨询、培训等)问题,您总能找到问题的答案。
从“未记录的行就是不存在的行”的原则出发,您还会发现许多专用于 Symfony 的作品,它将帮助您完成站点和应用程序的开发。
6. 互操作性
Symfony 背后的想法:不要将自己锁在 Symfony 中!让您自己构建完全满足您需求的应用程序!
Symfony 尊重 PHP 现有的“事实上的标准”:PHPUnit、类的命名约定等。此外,Symfony 还允许您使用其软件构建块的某些部分(依赖注入器、翻译管理、表单管理等),而无需必须完整地使用该框架。
顺便说一句,Symfony 的互操作性非常高,以至于它的核心是使用外部软件构建块本身(ORM Doctrine、Swiftmailer 等)!
通过 6 个经验了解 Symfony 的技术优势
1. 更快、更少贪婪
在 IT 世界中,人们在项目结束时开始关注应用程序的性能并不少见!也就是说,一旦一切都在功能和技术层面上进行了设计。即使你把所有东西都拆开,性能优化也不是一件容易的事。
另一方面,Symfony 从一开始就被认为是快速的,并且非常重视性能。相比之下, Symfony 是最快的 PHP 框架。
2. 无限的灵活性
无论您的需求是什么,Symfony 都会适应。它的依赖注入器和事件调度程序使其完全可配置,每个块都是完全独立的。某种三合一框架:
- Full Stack(完整版):你想要开发一个复杂的应用程序并且需要很多功能。
- 一砖一瓦:您根据需要的功能构建框架。
- Microframework:作为一个独立的框架,Symfony 也可用于在您的项目之一中开发特定功能。无需重新开发所有内容,也无需安装整个框架,而只需安装您需要的特定砖块。
持久性也与长期支持有关。 Symfony 的专业支持由 SensioLabs 提供,但自推出以来,Symfony 周围还形成了一个完整的生态系统:社区(Slack、GitHub Discussions 等)和许多其他投资该框架的服务公司。
最后,也是出于可持续发展的考虑,Symfony 在开源 MIT 许可证下分发,该许可证不施加任何限制并允许开发开源以及专有应用程序。
3. 可扩展
从最小的砖块到完整的核心本身, 一切都以“捆绑包”的形式呈现(或 Symfony 中的插件) Symfony 中的语言)。每个捆绑包旨在添加 框架的功能,也可以在另一个框架中重用 项目或与社区其他成员共享。
无论如何,捆绑系统允许一切 Symfony 内部发生了变化,包括核心本身。使用 系统的砖之间的接口合同,行为 因此,可以随意更改框架,而不需要 完成重新配置。
4. 稳定可持续
Symfony 发布流程确保所有次要版本之间的兼容性,并对主要 Symfony 版本提供 3 年支持。
5. 开发的乐趣
作为一个功能强大的环境,Symfony 也保证了开发人员一定的舒适度。通过处理许多令人不快的任务(例如,开发次要功能),Symfony 允许开发人员专注于应用程序的实际亮点,并充分验证他们的角色并提高他们的生产力。
Symfony 旨在让开发人员的生活变得更加轻松的工具中,有传奇的 Web 调试工具栏,以及对开发环境的本机支持、详细的错误页面甚至本机安全性。
6. 易于使用
Symfony 完全灵活地满足专业人士和高级用户的需求,而且非常易于使用。丰富的文档、社区和专业支持,以及框架内“嵌入”的最佳实践(无需了解或理解即可本地应用的最佳实践)让初学者能够很快轻松地使用 Symfony。
选择正确框架的十大标准
您将使用哪个框架来开发您的网站?这是一个清单,您可以使用它来避免犯错误。
1. 受欢迎程度和社区规模
框架越知名和被认可,它就越“有生命力”、不断发展和完善:新的想法、插件的数量和质量等。
2. 理念
这是该框架的本质:它是确保它满足您的需求的基本标准。专业人士根据自己的需要开发的工具显然可以满足其他专业人士的需求。
3. 可持续性
在选择框架之前,请确保它能够在您的持续时间内跟上您的步伐。这简化了应用程序的维护和升级。
4. 支持
另一个不容忽视的标准是轻松找到问题的答案并获得帮助。确定可用的支持:来自发布者。来自社区(邮件列表、IRC 等)?来自服务公司(开发、支持、培训)?
5. 技术
为了避免陷入迷宫,最好选择可互操作的解决方案;一种尊重开发方面的最佳实践(设计模式)的方法。
6. 安全
任何应用程序都可能容易受到攻击。为了最大限度地降低风险,最好选择能够确保安全功能(例如 XSS 管理)的框架。
7. 文档
评估有关框架的现有文献的性质、数量和质量是绝对必要的:一个记录良好的工具既更易于使用,也更易于升级。
8. 许可证
许可证很重要,因为它们会对您的应用程序产生重大影响。例如,使用 GPL 许可框架开发的应用程序必然受 GPL 约束。另一方面,麻省理工学院许可的框架则并非如此。
9. 市场资源的可用性
也许您希望在开发阶段或长期内有一个技术团队围绕您进行维护和升级。换句话说,确保您正在使用的工具所需的技能可以在公开市场上获得。
10. 尝试一下!
这就是关键!不要满足于阅读互联网上的评论、评论和谣言,无论好坏。通过测试,您将能够做出自己的决定并确保您对该工具完全满意。