Symfony和Silex的区别

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

我知道使用Symfony2,我想知道,如果Silex是Symfony非常不同或它是相同的东西(相同的操作,相同的代码…)?

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

有几件事值得注意:

  • Silex基于Symfony2组件,就像Symfony2框架一样。 因此,它可以被认为是组件的另一种用户界面(用户是web开发者)。
  • 由于他们使用相同的基础,他们之间的迁移应该相对容易。
  • 就像Symfony2一样,Silex大多是一个控制器框架。 它提供了一些结构,但模型和视图部分由第三方库(如Twig或Doctrine)处理。
  • 由于您的业务逻辑不应该在您的控制器中,所以如果您将这些代码分开并让控制器保持点亮状态,那么就项目规模而言,限制因素将只是您拥有的路线数量。

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

以下是关于何时使用Silex的一些有趣想法(特别是在评论中): https ://web.archive.org/web/20160131151109/http: //www.testically.org/2011/10/11/is-there -a-特定情况-时使用的-A-PHP-微框架样硅石/

Silex本身是相当光秃的,这意味着如果你需要更多的路由和testing,你将需要以服务的forms添加特定的function(DB,Twig …)。 我build议看看一些现成的板,提供这个: https : //github.com/lyrixx/Silex-Kitchen-Edition或https://github.com/ivoba/superleansilexplate (多数民众赞成))

还有一点是Silex比Symfony2可能更轻,所以如果你需要更小更快的网站,Silex是值得考虑的。

(更新)自Symfony 2.8以来您可以使用symfony 2作为微内核控制器的微框架。 在这里看到简短的描述: symfony.com/blog/new-in-symfony-2-8-symfony-as-a-microframework 。 现在Symfony给了我们更多的控制结构和架构。 如果您喜欢Symfony 2风格,则可以selectSilex。

在2.8版本之前比较Silex和Symfony

Silex微框架基于Symfony,但并不完全一样。 使用像Symfony这样的全栈框架来完成一个小项目就是过度使用这个项目。

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

Silex的目的是构build这个工具,而不是获得你可能不需要的设置工具。 我会说,对于Symfony中的小型项目,您将不得不删除function – 在Silex中,您将不得不添加它们。

Silex不适合大型项目也是不正确的。 Silex可以用于大型项目的成功,但请记住,您将不得不build立自己的工具来满足您的需求(如果您需要定制架构和逻辑 – 也许这是正确的方法)。 除此之外,我会考虑使用Symfony,因为Symfony已经有很多可用的工具了。

Silex依赖注入

请记住: Silex限制

总而言之,Silex对于小型应用程序是有好处的,对于那些应用程序,它肯定能取代Symfony。 Silex也可以用于较大的项目(但是对于较大的应用程序,我build议使用像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

Silex对于小型项目是有好处的,但它也可以用于大型项目。 我最喜欢Silex的是我完全控制了我的项目结构,但是如果我的项目组织得好,这是我的责任。
另外我推荐它通过symfony如果像我一样,你移动你的应用程序逻辑到客户端使用JS框架。 对我来说,使用symfony只是为了满足一些json请求而感到一种矫枉过正的感觉。

Silex基于独立的Symfony2组件,并不像Symfony那样真正被认为是一个完整的Web应用程序框架。 你应该只用于只需要几个文件的非常小的项目,否则你将会非常快速地超过它。

对于小型和大型应用程序来说,Silex是一个很好的框架。 在Silex中为您的项目提供结构是您的责任。 随着项目变得越来越大,你可以很好地整合symfony组件,尽pipesym​​fony提供者的文档不太好,特别是symfony安全组件。

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

在我的情况下,我需要开箱即用的速度,而且SENNX为我提供了速度,尽pipe我使用了大部分的symfony组件,但它比symfony开箱快了很多。

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