Restler不会调用任何API方法

时间:2015-03-28 19:09:10

标签: php restler

Restler拒绝实例化我的任何API类。它总是说它在Route上失败了,但是没有提供任何其他有用的信息。我通过作曲家通过"restler/framework" : "3.0.0-RC6"安装了Restler,然后创建了一个如下所示的index.php:

<?php

require __DIR__.'/../vendor/autoload.php';

use Luracast\Restler\Restler;

$r = new Restler();
$r->addAPIClass('Explorer');
$r->addAPIClass('Play');

$r->handle();

在与index.php完全相同的目录中,我创建了一个名为Play.php的文件,如下所示:

<?php

public class Play
{
    public function __construct() {
        error_log("I called the constructor!\n", 3, '/tmp/scott');
    }

    public function index() {
        error_log("I called the index\n", 3, '/tmp/scott');
    }

当我调用http://.../api/play时,我从未看到创建了/ tmp / scott文件,我只是从Restler获得了通用的失败响应:

{
    "error": {
        "code": 404,
        "message": "Not Found"
    },
    "debug": {
        "source": "Routes.php:438 at route stage",
        "stages": {
            "success": [
                "get"
            ],
            "failure": [
                "route",
                "negotiate",
                "message"
            ]
        }
    }
}

1 个答案:

答案 0 :(得分:1)

正如Luracast在评论中指出的那样,我不得不编辑composer.json来添加这个节:

"autoload": {
    "psr-0": {
        "": "api"
    }
}

然后运行composer dump-autoload