如何在PHP中为函数指定URL模式?

时间:2016-06-03 15:41:22

标签: php angularjs .htaccess rest

我正在尝试使用PHPRESTAngular

我有一个userAPI.php文件,其中包含多个函数:getUser($uid)等。

我有一个DAO方法,它从指定的userObject的数据库中返回userID

现在,在Java中,当我们使用JAX-RS时,我们可以使用注释指定URL模式,如下所示:

@url('user/{uid}')'
@get
public void getUser(Integer uid){
   //func body
}

但我不确定如何在PHP中这样做。

然后我用Google搜索并了解.htaccess

我试过了:

RewriteRule user/(.*)$ php/service/userAPI.php?uid=$1 [QSA,NC,L]

但我不确定这是否正确。

我应该在.htaccess$http.get()内写一下什么?

2 个答案:

答案 0 :(得分:1)

PHP脚本不会自动调用任何函数。要测试您的重写规则是否生效,请执行以下操作:

<强> userAPI.php

<?php
require_once "userMethods.php"

$uId = (isset($_GET["uid"]))?$_GET["uid"]:null);
if ($uId === null) {
    echo "No user id provided";
}
$user = getUser($id);

<强> userMethods.php

<?php
function getUser($id) {
     //Get the user 
}
// Other functions?

虽然可以在任何将运行的代码之前声明userAPI.php文件中的所有函数,但将函数声明(和类声明)与可运行脚本分开可能是更好的做法。

但我建议您使用正确的PHP MVC框架。 Laravel是一个相当不错的版本,虽然它确实有一个学习曲线,所以如果你只需要在PHP中做一些简单的事情然后再从不编码,那么它可能不值得投入时间。

答案 1 :(得分:0)

你应该看看这个。这将为您处理所有路由,并且非常容易设置。一旦定义了路线,您就可以调用自己的功能。

http://www.slimframework.com/