我有一个PHP应用程序,我早些时候,我想一个RESTful API添加到写道。 我也想扩大地盘的行为更像是一个Rails应用程序在你打电话来获取系统中的项目URL的条款。
有没有办法来调用一个Railsy方式PHP项目,而无需创建各种文件夹和索引页的? 我怎样才能调用PHP的信息,而无需使用GET查询标记?
我有一个PHP应用程序,我早些时候,我想一个RESTful API添加到写道。 我也想扩大地盘的行为更像是一个Rails应用程序在你打电话来获取系统中的项目URL的条款。
有没有办法来调用一个Railsy方式PHP项目,而无需创建各种文件夹和索引页的? 我怎样才能调用PHP的信息,而无需使用GET查询标记?
如果你有某种形式的mod_rewrite的打算,你可以使用.htaccess文件做到这一点很容易。
如果你有这样的事情:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
它会检查您试图访问该文件不存在。 (说你有,你仍然需要人们通过访问一个文件hello.html的http://yoursite.com/hello.html )
那么,如果该文件不存在,它将加载index.php文件存储在url变量中的URL的其余部分。
这意味着你可以调用这样的事情http://yoursite.com/pages/edit/24 ,它会加载index.php文件的URL变量中/页/编辑/ 24。
这应该让你开始,你不会需要的各种文件夹和索引页,只是mod_rewrite的,.htaccess文件和将要用来加载任何你需要的的index.php。
您也可以考虑使用带有内置REST支持PHP框架之一,例如CakePHP的 。
在respopnse帕斯卡MARTIN快速注:Zend_Rest_Server有绝对无关,与REST。 他们只是做RPC略有更好的网址,并称之为REST,使其更新潮。
如果你想要做休息,你需要做更多的工作,你就和我还没有找到PHP好好休息库呢。 所以,检查$_SERVER['REQUEST_METHOD']
以决定如何处理所谓的资源,等等做。
最简单的方法可能会使用一个框架,它为您提供了面向REST-functionnalities。 我知道,Zend框架做的是,用类Zend_Rest_Server
,允许轻松创建一个REST服务器。
我想很多其他的框架做一样的。
但是,如果你已经有了一个不使用框架的应用程序(或者说是基于没有嵌入那种类的框架),一对夫妇的URL重写规则会做就好了; 你只需要更多的工作,以URL映射/参数类/方法:-(
你正在寻找的设计模式被称为前端控制器 。
在最简单的形式,你使用mod_rewrite来传递传入的请求,并把它传递给一个PHP脚本。 该URL然后用正则表达式解析并映射到不同的应对行动。 但是映射现有的应用程序可能需要大量重写。
如果你要玩这个概念我建议Silex的 microframework。