Slim PHP - 使用请求和响应对象的正确方法

时间:2016-10-03 11:45:16

标签: php slim

我是Slim和PHP的新手,但我试图用Slim做一个简单的休息API。它正在工作,但我不知道我是否以正确的方式做到这一点,我找不到其他办法。

例如,我有这样的路线:

$app->get('/contacts', '\Namespace\Class:method');

方法:

    public function searchContacts($request, $response) {

         return Contact::searchContacts($resquest, $response);
    }

因此,我发现从其他类访问请求和响应的独特方法是将对象作为参数传递。它是正确的还是有更好的(正确的)方法呢?

2 个答案:

答案 0 :(得分:2)

我认为你的方式并不好。

控制器应处理请求并返回响应。 您的模型(Contact)应该处理请求。它应该采取所需的参数并返回数据。

简单示例:

public function searchContacts($request, $response) 
{
    // to example, you pass only name of contact
    $results = Contact::searchContacts($request->get('contactName'));
    $response->getBody()->write(json_encode($results));

    return $response;
}

您无需访问其他课程中的RequestResponse个对象。如果需要,可能您的架构是错误的。

来自官方网站的好例子:http://www.slimframework.com/docs/tutorial/first-app.html#create-routes

答案 1 :(得分:0)

最简单的方法是从params获取值并在方法中收到响应。

$app->get('/contacts', function (Request $request, Response $response) {
     $Contactname = $request->getAttribute('contact');
//You can put your search code here.
     $response->getBody()->write("Contact name is, $name");

     return $response;
});