我们将在PHP中实现一组REST Web服务。我们选择了2个框架:Symfony 2和Silex(微框架作为phar存档,基于Symfony2)。
目前,只有少数服务,有一些资源作为GET返回,但这组方法最终会增长并包含其他休息动作(put / post / delete)。
这是我迄今为止对这两个框架的优缺点列表
的 Symfony2的 的
优点:
缺点:
捷希凯
优点:
缺点:
您认为哪一个最好?
由于
答案 0 :(得分:16)
真的取决于你项目的规模,既然你说它很小,我会选择Silex。
当您include silex through composer时,几乎所有为Silex列出的缺点都被排除在外。然后它只是在供应商中加载Silex依赖项,你没有phar的开销,也没有IDE中缺少代码完成。事实上the PHAR distribution is deprecated。
至于Doctrine,Silex有一个built in Doctrine ServiceProvider可以在你的Silex项目中无缝加载Doctrine DBAL。您可以自己轻松添加DoctrineORM或使用github上的3rd party serviceProviders之一。
我正在使用Silex构建一个相当大的REST API,并且没有后悔从Silex开始的一件事。您可以获得Symfony2组件的许多优点,因为silex是使用它们构建的,并且具有非常轻量级的休息就绪微框架,无需经过数小时的yaml配置和设置。
说实话,我必须承认我不是注释的忠实粉丝,注释很好,但我认为@mcfedr的例子有点太过分了,但这只是个人品味。
我希望我已经揭穿了你对Silex的一些偏见。给它一个摆动,你不会后悔。另一方面,您可能不会后悔Symfony2:)
答案 1 :(得分:12)
就我个人而言,我非常喜欢symfony 2,它很容易使用注释语法创建REST URL,在你的控制器中你可以使用
/**
* @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() {
...
}