【问题标题】:RESTful webservice with Silex PHP : good choice? [closed]带有 Silex PHP 的 RESTful Web 服务:不错的选择? [关闭]
【发布时间】:2012-09-28 15:07:10
【问题描述】:

我必须为移动应用程序创建一个 REST API,但我真的不知道如何开始。 我阅读了一些关于 REST 的文章和教程,但没有找到用 PHP 编写的复杂 API 示例。

所以经过更多研究后,我选择使用微框架(而不是从头开始)。像 Symfony2 或 Zend 这样的完整框架提供了一些我不需要的方法,我认为它们太大了。 因为我已经使用过 Silex PHP,所以我选择了它。

但我一直在想一个问题:Silex 是创建(未来)大型 API 的好选择吗?

API 将不断发展,可能会越来越复杂(了解更多 URI 将来会可用,因为我们的目标是从 SOAP 迁移到 REST)。

由于 Silex PHP 使用单个文件约定,我有点害怕使用它(因为文件会越来越大,而且我认为性能会下降)。 此外,我还想在必要时缓存服务器结果(另外还有 HTTP 缓存),以减少对数据库 (MySQL) 的查询。

你怎么看,你有什么建议? :)

【问题讨论】:

  • 我会选择 Symfony2,但您也可以将 MVC 添加到您的 Silex 堆栈中以获得更好的代码扩展。
  • 我考虑过 Symfony2 和 ZF2,但在这种情况下我发现它们很复杂而且太大(而且我对这两个框架没有丰富的经验)。但我可能是错的:)
  • 你看过柠檬水吗?它对于一个框架来说非常小,Tropo 建议将其与他们的 REST API 一起使用。
  • 我不太相信柠檬水。好像很久没有更新了……而且它的架构比 Silex 更特别(即使两者有相似之处)。我在微框架中看到的主要问题涉及路由。应用程序将在运行正确之前解析所有路由。如果我有很多 URI(确实如此),执行时间将会增加。那么可扩展性呢?...我认为,就像@ChocoDeveloper 所说,Symfony2 更重要(我发现 ZF2 不太方便)。但是使用全栈框架需要更多时间(学习等)。
  • 我不建议在 url 中包含次要 api 版本,因为每次发布新的次要更新都会破坏客户端。相反,最好只使用主要版本,如 [...]/v1/[...]

标签: php web-services rest architecture silex


【解决方案1】:

Silex 是一种用于小型项目的微框架。它适用于流量较小的小型网站。在不引入太多抽象层的情况下,这也是一种向自己介绍依赖注入等概念的好方法。 他们最近在其网站中将目标介绍为“单文件应用程序”,为您提供了一些框架的目标范围。

我认为 Silex 不适合任何大的东西应该是相当公认的事实。 如果您的项目有效,Silex 的表现不会很差,但一旦您开始成长,它就不会是最好的合作伙伴,因为它不会对您有太多帮助。 Symfony 使用您将在 Silex 中看到的概念,它是一个完整的堆栈框架,您可以将其用于更大的应用程序,其中包含许多捆绑包、插件和一个可以为您提供帮助的大型社区。​​p>

编辑:

注意我无法删除答案,因为它已被接受。我已经好几年没有使用 PHP 了,从那时起,Silex 已经将他们的方法从“微框架”改变为看起来只是一个库。无论如何,我认为投反对票的人肯定是参与该项目的人,他们可能对创造的东西没有像他们希望的那样成功。

只需阅读产品文档,这是一个征求意见的请求,已被给予并接受。我不认为这个问题属于stackoverflow。

【讨论】:

  • 我可以补充的是 Silex 没有像 Symfony 那样需要处理的太多配置,您可以非常快速地编写代码,我会推荐 Silex 用于原型设计和测试,小型应用程序
  • 你会用什么来代替 PHP?为什么?
  • PHP = 廉价部署,廉价启动...使用 Java,您无法获得廉价的服务器,但如果您无论如何要拥有自己的服务器,Java 更容易使用,它更处理效率高,而且像tomcat这样的应用程序服务器的架构比httpd更适合IMO这样的任务。当然有很多选择,但如果你刚开始,你想选择大的,这样你就能得到支持。
  • 这是什么东西?这么好的东西被删了……
  • 如果你们不喜欢我的意见,就发点别的吧……毕竟这是一个见仁见智的问题,我改变了一些措辞,我想有些人对此很感伤
【解决方案2】:

Silex 是构建 api 服务的不错选择。我建议也许从Silex Kitchen Edition 开始,以获得一些体面的组织和其他有用的配置,并去掉你不需要的东西。另外,我会寻找用 silex/symfony 编写的现有的宁静项目。至于可扩展性,您应该 read this post 来自 Silex 的创造者之一的 Igor Wiedler。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多