Symfony和Silex之间的区别

时间:2012-06-29 23:06:50

标签: php symfony frameworks silex

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

我知道使用Symfony2,我想知道Silex是否与Symfony非常不同,或者它是一样的(相同的操作,相同的代码......)?

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

8 个答案:

答案 0 :(得分:46)

值得注意的一些事情:

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

那就是说,Silex不会给你Symfony2的捆绑包。

答案 1 :(得分: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 ......)。 我建议你看一些现成的Plates,为你提供: https://github.com/lyrixx/Silex-Kitchen-Edition 要么 https://github.com/ivoba/superleansilexplate(那是我的:))

另一点是Silex的占地面积可能比Symfony2轻,所以如果你需要更小的&更快的网站,Silex值得考虑。

答案 2 :(得分:8)

(更新)自Symfony 2.8 您可以将symfony 2用作微内核控制器的微框架。请参阅此处的简短说明:symfony.com/blog/new-in-symfony-2-8-symfony-as-a-microframework。现在,Symfony让我们可以更好地控制结构和架构。如果您更喜欢Symfony 2风格,那么可以替代Silex。

在2.8发布之前将Silex与Symfony进行比较

Silex微框架基于Symfony,但它并不完全相同。对一个小项目使用Symfony这样的全栈框架简直过度使用该项目。

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

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

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

Silex dependency injection

请记住: Silex limitations

总而言之,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

答案 3 :(得分:7)

Silex适用于小型项目,但它也可用于大型项目。我最喜欢Silex的是我完全控制了我的项目结构,但如果我的项目组织良好,那是我的责任。
另外我推荐它在symfony上,如果像我一样,你使用JS框架将应用程序逻辑移动到客户端。对我来说,使用symfony只是为了提供一些json请求感觉有点过分了。

答案 4 :(得分:5)

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

答案 5 :(得分:1)

Silex是适用于小型和大型应用程序的理想框架。在Silex,您有责任为项目提供结构。随着项目变得越来越大,您可以很好地将symfony组件集成到其中,尽管sym​​fony提供程序的文档不是那么好,特别是对于symfony安全组件。

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

在我的情况下,我需要速度开箱即用,而silex为我提供了速度,虽然我使用了大部分symfony组件,但它比开箱即用的symfony快得多。

答案 6 :(得分:1)

在撰写本文时, Silex处于维护模式,并且该产品已寿命终止occured in June 2018

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

他们建议您改用Symfony 4

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

更新:但是,在我从Silex迁移到Symfony 4的所有尝试中,无论我做什么,简单的服务都要花4倍的时间才能做出响应。 Silex似乎在简单的微服务方面做得更好。

答案 7 :(得分:-2)

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