Я реализую Swagger-PHP для API, который мы создали.
Вот краткий обзор:
Язык: PHP5.3
Структура: FuelPHP 1.5.3
Среда: локальная (обслуживается Nginx)
Теперь у меня есть метод API, определенный следующим образом:
/**
* @SWG\Api(
* path="/site/list",
* description="Get sites list",
* @SWG\Operation(...,
* @SWG\Parameter(...),
* @SWG\ResponseMessage(...),
* @SWG\ResponseMessage(...)
* )
* )
*/
public function action_run()
{
//doing stuff
}
Теперь я пытаюсь сделать следующее (из другого места в моем приложении) для создания JSON:
$swagger = new Swagger\Swagger('my/root/dir');
$swagger->getResource('/site/list', array('output' => 'json'));
И эта первая строка здесь (при создании экземпляра моего класса Swagger) выдает мне ошибку:
ErrorException [Предупреждение пользователя]: [Семантическая ошибка] Класс «пакет» не снабжен аннотацией @Annotation. Вы уверены, что этот класс можно использовать в качестве аннотации? Если это так, вам нужно добавить @Annotation в комментарий документа class для «package». Если это действительно не аннотация, вам нужно добавить @IgnoreAnnotation("package") в комментарий документа class класса @Swagger\Annotations\Api.
Добавление @IgnoreAnnotation("package")
на самом деле не помогает.
Я заметил, что ошибка исчезает, если я удалю @package
отсюда:
https://github.com/zircote/swagger-php/blob/master/library/Swagger/Annotations/Api.php#L28
Но это не решение.
Я предполагаю, что это в основном связано с доктриной, но я не могу понять это.
Спасибо за любые советы или идеи по этому вопросу.