使用PHP创建RESTful API和网站

使用PHP创建RESTful API和网站,php,ruby-on-rails,url,rest,get,Php,Ruby On Rails,Url,Rest,Get,我有一个我之前编写的PHP应用程序,我想添加一个RESTful API。我还想扩展该站点,使其行为更像Rails应用程序,即通过调用URL来获取系统中的项目 有没有任何方法可以在PHP中以Railsy的方式调用项,而不创建所有类型的文件夹和索引页?如何在不使用GET查询标记的情况下在PHP中调用信息?如果您有某种形式的mod_rewrite,您可以使用.htaccess文件轻松完成这项工作 如果你有这样的东西: RewriteEngine On RewriteCond %{REQUEST_FIL

我有一个我之前编写的PHP应用程序,我想添加一个RESTful API。我还想扩展该站点,使其行为更像Rails应用程序,即通过调用URL来获取系统中的项目


有没有任何方法可以在PHP中以Railsy的方式调用项,而不创建所有类型的文件夹和索引页?如何在不使用GET查询标记的情况下在PHP中调用信息?

如果您有某种形式的mod_rewrite,您可以使用.htaccess文件轻松完成这项工作

如果你有这样的东西:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
它将检查您试图访问的文件是否不存在。(假设您有一个文件hello.html,您仍然需要人们通过访问该文件)

然后,如果该文件不存在,它将加载index.php文件,并将URL的其余部分存储在URL变量中

这意味着您可以调用类似这样的函数,它将在url变量中加载index.php和/pages/edit/24


这应该让你开始,你不需要所有的文件夹和索引页,只是MODYReWrdIn,.HTAccess文件和一个索引X.php,它将被用来加载你需要的任何东西。

< P>你也可以考虑使用一个内置休眠支持的PHP框架,例如。

最简单的方法可能是使用一个为您提供面向REST的功能的框架。我知道Zend Framework通过类实现了这一点,它允许轻松创建REST服务器

我想许多其他框架也会这样做


但是,如果您已经有了一个不使用框架的应用程序(或者基于不嵌入此类类的框架的应用程序),那么使用几个URLrEwriting规则就可以了;您只需要做更多的工作来将URL/参数映射到类/方法:-(

Pascal MARTIN的快速回复:Zend_Rest_服务器与Rest完全无关。他们只是用稍微好一点的URL来做RPC,并将其称为Rest,这样它就更时髦了


如果你想做REST,你需要自己做更多的工作,因为我还没有找到一个好的PHP REST库。所以检查
$\u服务器['REQUEST\u METHOD']
来决定如何处理被调用的资源等等。

你正在寻找的设计模式被称为a

最简单的形式是使用mod_rewrite传递传入请求并将其传递给单个php脚本。然后使用正则表达式解析url并映射到不同的响应操作。但是映射现有应用程序可能需要大量重写


如果你想玩转这个概念,我建议你使用微框架。

啊,我错了:CakePHP实际上休息得很好。虽然它有一个可怕的ORM层,但ok:-)如何只对yoursite.com/api文件夹这样做?