36

我想试试 Silex,但我有一些问题。

我知道使用 Symfony2,我想知道 Silex 是否与 Symfony 有很大不同或者它是相同的东西(相同的操作,相同的代码......)?

此外,Silex 被推荐用于小型 PHP 项目,而 Symfony 被推荐用于中型或大型项目,是吗?

4

8 回答 8

46

有几点值得注意:

  • Silex 基于 Symfony2 组件,就像 Symfony2 框架一样。因此,它可以被认为是组件的替代用户界面(用户是 Web 开发人员)。
  • 由于它们使用相同的基础,因此它们之间的迁移应该相对容易。
  • 就像 Symfony2 一样,Silex 主要是一个控制器框架。它为您提供了一些结构,但模型和视图部分由第三方库(例如 Twig 或 Doctrine)处理。
  • 由于您的业务逻辑无论如何都不应该在您的控制器中,如果您将代码分开并保持控制器轻便,那么项目大小方面的限制因素将只是您拥有的路由数量。

也就是说,Silex 不会给你 Symfony2 拥有的捆绑包。

于 2012-06-30T12:58:14.090 回答
15

以下是关于何时使用 Silex 的一些有趣想法(尤其是在评论中): https ://web.archive.org/web/20160131151109/http://www.testically.org/2011/10/11/is-there -a-specific-situation-when-to-use-a-php-micro-framework-like-silex/

Silex 本身非常简单,这意味着如果您想要更多,而不仅仅是路由和测试,您将需要以服务的形式添加特定功能(DB、Twig ...)。我建议看看一些为您提供此功能的现成板: https ://github.com/lyrixx/Silex-Kitchen-Edition 或 https://github.com/ivoba/superleansilexplate(这是我的 :))

另一点是 Silex 的占用空间可能比 Symfony2 更轻,所以如果您需要一个更小更快的站点,Silex 值得考虑。

于 2012-06-30T13:17:28.247 回答
8

(更新)从 Symfony 2.8 开始,您可以使用 symfony 2 作为带有微内核控制器的微框架。请参阅此处的简短描述:symfony.com/blog/new-in-symfony-2-8-symfony-as-a-microframework。现在 Symfony 让我们可以更好地控制结构和架构。如果您更喜欢 Symfony 2 样式,则可以替代 Silex。

将 Silex 与 Symfony 2.8 之前的版本进行比较

Silex 微框架基于 Symfony,但并不完全相同。为一个小项目使用诸如 Symfony 之类的全栈框架只是对项目的过度杀伤。

在微框架中,您可以更灵活地选择要使用的工具。您可以对应用程序架构和逻辑做出更多决策。在具有一些扩展的全栈框架中,您将拥有一个已经预定义的架构和逻辑,并对其配置进行限制和限制。

Silex 旨在构建工具,而不是获取您可能不需要的设置工具。我会说,对于 Symfony 中的小型项目,您必须删除功能 - 在 Silex 中您必须添加它们。

Silex 不适合大型项目也是不正确的。Silex 可以成功地用于大型项目,但请记住,您必须构建工具以满足您的要求(如果您需要自定义架构和逻辑 - 也许这是正确的方法)。除此之外,我会考虑使用 Symfony,因为 Symfony 已经有很多开箱即用的工具。

Silex 依赖注入

请记住: Silex 限制

总而言之,Silex 适合较小的应用程序,对于那些应用程序,它肯定可以取代 Symfony。Silex 也可用于大型项目(但对于大型应用程序,我建议使用全栈框架,例如 Symfony)。

幻灯片参考:http ://www.slideshare.net/dustin.whittle/silex-from-micro-to-full-stack 。如果您愿意,请继续阅读有关 Silex 框架的更多信息。

我还建议观看此介绍,将 Silex 与 Symfony 进行比较:https ://www.youtube.com/watch?v=RDVtnsoOysE 。

同样,一些使用 Silex 的 Pro 来自实际使用它的人:https ://www.youtube.com/watch?v=OJcdHGJFfLU

于 2015-11-03T01:03:51.177 回答
7

Silex 适用于小型项目,但也可用于大型项目。我最喜欢 Silex 的是我可以完全控制我的项目结构,但我的项目是否组织良好是我的责任。
如果像我一样,我也推荐它而不是 symfony,你使用 JS 框架将应用程序逻辑移动到客户端。对我来说,只使用 symfony 来服务几个 json 请求感觉有点过头了。

于 2013-08-12T21:51:12.553 回答
5

Silex 基于独立的 Symfony2 组件,并不像 Symfony 那样真正被视为全栈 Web 应用程序框架。你应该只将它用于只需要几个文件的非常小的项目,否则你很快就会过时。

于 2012-06-29T23:08:13.430 回答
1

在我写这篇文章的那一刻,Silex 处于维护模式,它的生命周期结束于 2018 年 6 月

这意味着您不应该再将它用于新项目。

他们建议您改用Symfony 4

Silex 非常好而且速度很快(对于简单的请求/要求,可能比 symfony 4 更快),但是 SF4 可能会为我们的应用程序带来一些新的堆栈和好处。

更新:然而,在我从 Silex 迁移到 Symfony 4 的所有尝试中,无论我做什么,简单服务的响应时间都增加了 4 倍。Silex 似乎在简单的微服务方面做得更好。

于 2019-08-26T05:58:45.353 回答
1

Silex 是一个伟大的框架,适用于小型和大型应用程序。为项目提供结构是您在 Silex 的责任。随着项目变得越来越大,您可以很好地将 symfony 组件集成到其中,尽管 symfony 提供者的文档不是很好,尤其是 symfony 安全组件。

Silex 非常适合原型项目。如果您知道您将使用大部分 symfony 组件,那么就选择 symfony,因为您最终会将几乎所有 symfony 组件集成到 silex 中。

就我而言,我需要开箱即用的速度,而 silex 为我提供了速度,虽然我使用了大多数 symfony 组件,但它比开箱即用的 symfony 快得多。

于 2015-12-24T04:22:30.610 回答
-2

Silex 是一个 PHP 微框架。用于小型项目。symfony 和 silex 的编码风格与 symfony 几乎相似。但 symfony 用于大型项目

于 2014-02-05T02:20:30.733 回答