Служба REST в Restler не может найти какой-либо маршрут после развертывания на тестовом сервере

Рестлер 3.0.0rc6.

Я установил простой сервис REST в Restler в моей локальной среде разработки. Когда я перешел на тестовый сервер, Рестлер не может найти ЛЮБОЙ маршрут.

У меня есть проекты в синхронизации с GIT через удаленный хост. Я только что вытащил последние локальные изменения на мой тестовый сервер, поэтому настройка папки должна быть в порядке.

Ошибка приходит в Routes.php строка 362 в методе find кто пытается найти метод API, соответствующий запрошенному URL. Инструкция в этом файле:

$p = Util::nestedValue(static::$routes, "v$version");

возвращается $p = NULL, Значения параметров в вызове:

static::$routes is an empty array - array().
$version is int(1)

После этого кода условное выражение вызывает исключение, если $p = NULL,

Я пробовал пример mininum Hello world и всегда получал одну и ту же проблему.

Поскольку приложение работало нормально на моем локальном сервере, я могу думать о некоторой конфигурации на моем тестовом сервере, которая все испортила, но не может отследить, что это такое. Поскольку я не знаю, с чего начать, я просто включаю некоторую информацию на случай, если она может быть полезна.

Я включаю конфигурацию моей папки:

html/api/ -> index.php and custom class files
html/api/data-base -> database acces files
html/api/vendor -> Restler

Мой файл index.php

<?php
require_once 'vendor/restler.php';
require_once('data-base/data-base-pdo.php');
use Luracast\Restler\Restler;
$r = new Restler();
$r->addAPIClass('Individuals');
$r->addAPIClass('Injuries');
$r->addAPIClass('Measurements');
$r->addAPIClass('Sessions');
$r->addAPIClass('Reports');
$r->handle();

Один из моих файлов классов:

<?php
use Luracast\Restler\RestException;
class Individuals
{
public $db;
public function __construct() {
$this->db = DataBase::getInstance();
}

public function index() {
return $this->db->individualsSelect();
}

public function get($id) {
try {
return $this->db->individualsSelectOne($id);
} catch(mysqli_exception $e) {
throw new RestException(500, $e->getMessage(), array(), $e);
} catch(InvalidArgumentException $e) {
throw new RestException(400, $e->getMessage(), array(), $e);
}
}

public function put($id, $request_data) {
try {
return $this->db->individualsUpdate($id, $request_data);
} catch(mysqli_exception $e) {
throw new RestException(500, $e->getMessage(), array(), $e);
} catch(InvalidArgumentException $e) {
throw new RestException(400, $e->getMessage(), array(), $e);
}
}

/**
* @url GET {individuals_id}/injuries
*/
public function injuries($individuals_id) {
try {
return $this->db->injuriesSelectByIndividual($individuals_id);
} catch(mysqli_exception $e) {
throw new RestException(500, $e->getMessage(), array(), $e);
} catch(InvalidArgumentException $e) {
throw new RestException(400, $e->getMessage(), array(), $e);
}
}

/**
* @url GET {individuals_id}/measurements
*/
public function measurements($individuals_id) {
try {
return $this->db->measurementsSelectByIndividual($individuals_id);
} catch(mysqli_exception $e) {
throw new RestException(500, $e->getMessage(), array(), $e);
} catch(InvalidArgumentException $e) {
throw new RestException(400, $e->getMessage(), array(), $e);
}
}

/**
* @url GET {individuals_id}/sessions
*/
public function sessions($individuals_id) {
try {
return $this->db->sessionsSelectByIndividual($individuals_id);
} catch(mysqli_exception $e) {
throw new RestException(500, $e->getMessage(), array(), $e);
} catch(InvalidArgumentException $e) {
throw new RestException(400, $e->getMessage(), array(), $e);
}
}
}

0

Решение

Проблема была с делом в именах файлов и именах классов. Все мои предложения начинаются с заглавной буквы, как Individuals, но файлы все строчные, как individuals.php, Моя среда разработки не чувствительна к регистру, поэтому рестлер мог найти файлы для моих предложений, но как только я развернул свой тестовый сервер, все было сломано.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]