【问题标题】:Which PHP frameworks are suited for web service only applications?哪些 PHP 框架适合仅用于 Web 服务的应用程序?
【发布时间】:2016-02-27 18:22:22
【问题描述】:
我正在为几个即将到来的项目评估 PHP 框架,目标是为所有项目使用相同的框架。一个不寻常的方面是它们不是标准的基于浏览器的应用程序,它们都将由需要 XML 或 JSON 的自定义应用程序访问(目前尚未确定)。
Yii、CodeIgniter、CakePHP 等大多数 PHP 框架似乎都是围绕客户端应用程序将是一个浏览器这一合理假设设计的——例如,使用 cookie 来管理持久性、POST 后重定向等。
虽然我确信我可以使用上述任何框架来完成这项工作,但是否有任何主要框架“更适合”与客户端应用无关的应用程序开发?
【问题讨论】:
标签:
php
web-services
rest
frameworks
【解决方案1】:
在“大”的(CI、Kohana、Zend、Cake、Symfony)中,我认为较新的 Zend 对 RESTful Web 服务有最好的支持,但较早版本的 Zend 框架严重缺乏 REST 控制器。我已经为 Zend 创建了我自己的并使用它们。
如果你真的想要一个 Web 服务定制的框架,那么有一堆较小的项目,我认为没有一个项目能在接近临界点的地方吸引到我愿意押注它们的地方(或用于更多的演示项目) )。
我的建议是坚持你已经知道的框架,构建你自己的休息控制器(如果目前缺乏的话)。可能需要创建一些用于获取输出并将其转换为 XML、json 等的基本功能,但与尝试学习新框架相比,您将花费更少的时间。另外,有了一个大人物,您将不会因为不得不维护一个有人厌倦了跟上的废弃软件代码库而陷入困境。
【解决方案2】:
实际上,Recess PHP 听起来非常适合……它天生就是最宁静的。
更新:我最近也在玩Slim Framework。这是一个非常酷的小工具,基本上相当于 PHP 的 Express.js for node。它非常高效、轻量级和测试驱动。
【解决方案3】:
Symfony2 有一个有趣的概念,只要您专注于 HTTP(此外,它还有一些 CLI(命令行界面))。
它不是一个框架,而是一个框架库,您可以在其中使用提供基本 HTTP 抽象的小内核来选择您需要的部分。这个轻量级概念拥有足够的空间来涵盖您的应用程序逻辑的很多内容,同时又不会过于颠倒。
此外,它经过良好测试,具有定义的 API,并允许通过依赖注入和所谓的包轻松扩展。
如果你是新手并且使用 PHP,请从 symfony2 开始。
【解决方案4】:
我推荐 Zend Framework 来完成这样的零散工作,特别是因为它的编写方式是您可以使用它的零碎部分,而无需采用整个框架的行为。例如,在我的应用程序中,我将框架的 Zend_Db 部分用于 ORM 和数据库相关的功能,但我将其他对象和框架用于应用程序的其他部分。
正如您所指出的,大多数其他框架在编写时都对您希望构建的应用程序类型进行了许多假设(约定优于配置范式的缺点之一)。
【解决方案5】:
到 2012 年,人们肯定已经停止使用 RESTful 服务了吗?
如果您熟悉 Ruby on Rails Yii PHP 框架,值得研究。
也许值得花一个小时研究每个框架,看看哪个框架最容易使用。
【解决方案6】:
可以非常轻松地创建简单的 Web 服务。您不会使用任何框架,但您将用于生产...您需要担心安全性和灵活性。
实际上,如果您使用框架来管理您的 API,那将会变得非常容易。我建议你选择一个轻量级的框架。
框架的全部意义在于处理常见的任务和其他乏味的事情。 REST API 通常使用 PHP 构建,因此存在大量框架。就个人而言,我会使用 像 slim 这样的轻量级框架来处理诸如 URI 路由、解析/清理请求数据和生成响应等事情。
你有很多这样的选择:
http://davss.com/tech/php-rest-api-frameworks/