我们将在PHP中实现一组REST web服务。我们选择了两个框架来实现这一点: Symfony 2和Silex (基于Symfony2的微框架作为phar存档)。
目前,只有几个服务,返回的资源很少,但是方法集最终会增长并包含其他rest操作(put/post/delete)。
这是我到目前为止对这两个框架的利弊列表。
Symfony2
优点:
缺点:
Silex
优点:
缺点:
你认为哪一个是最好的?
谢谢
发布于 2012-04-17 12:11:13
就我个人而言,我非常喜欢symfony 2,它很容易使用注释语法创建REST urls,在控制器中放置如下
/**
* @Route("/user/{id}", requirements={"id" = "\d+"}, defaults={"_format"="json"})
* @Method({"GET"})
*/
public function getUser($id) {
...
}
/**
* @Route("/user", defaults={"_format"="json"})
* @Method({"PUT"})
*/
public function putUser() {
...
}发布于 2012-07-05 06:38:06
这取决于你的项目的规模,因为你说它很小,我会选择Silex。
当您使用通过composer包括silex时,您列出的Silex几乎所有的缺点都被排除在外。然后,它只在供应商内部加载Silex依赖项,您就没有phar的开销,也没有IDE中缺少代码完成的情况。实际上是不推荐使用PHAR发行版。。
至于Doctrine,Silex有一个内置于理论ServiceProvider中,可以在您的Silex项目中无缝地加载Doctrine。您可以自己轻松地添加DoctrineORM,也可以使用github上的第三方serviceProviders之一。
我正在用Silex构建一个相当大的REST,并且从来没有后悔过从Silex开始的任何事情。您可以获得Symfony2组件的许多优点,因为silex是用它们构建的,并且有一个非常轻量级的rest准备的微框架,而无需经过几个小时的yaml配置和设置。
老实说,我必须承认,我不是这个注解的超级粉丝,注释很好,但我认为示例be @mcfedr有点过火了,但这只是个人品味。
我希望我已经揭穿了你对Silex的一些偏见。挥拍一下,你不会后悔的。另一方面,您可能也不会后悔Symfony2 :)
https://stackoverflow.com/questions/10190732
复制相似问题