Как добавить автозаполнение для микрофреймера Flight PHP в PHPStorm
Я начал использовать микрофрейм Flight, но все методы скрыты под капотом (не заявлено в классе Flight).
Как я могу настроить PHPStorm или я должен написать новый набор правил?
Обновление: использование экземпляра фреймворка не работает
Я пытался использовать экземпляр фреймворка, но безуспешно - у меня есть внутренние методы в списке предложений:
Обновление: автозаполнение реализовано в фреймворке Flight
1 ответ
Прежде всего: я бы предложил представить новую проблему на их трекере с просьбой предоставить какой-нибудь вспомогательный файл (как показано ниже).. или реализовать его любым другим способом (например, через PHPDoc' @method
за Flight
класс - помощник не требуется и никаких изменений в реальном коде - только PHPDoc), чтобы IDE (например, PhpStorm или Netbeans) не жаловался на несуществующие методы, и у вас будет некоторая помощь по завершению кода из IDE.
Магия хороша... но не тогда, когда весь интерфейс основан на такой магии.
На актуальный вопрос, который вы можете решить самостоятельно.
Вам придется потратить некоторое время (полчаса или даже меньше) и создать какую-то подделку Flight
Класс и положить его в любом месте в вашей IDE - он будет использоваться только для завершения кода. Да, IDE может предупредить вас о дублирующих классах... но эту проверку можно отключить.
Идея состоит в том, чтобы создать класс и объявить все необходимые методы так, как это должно было быть сделано, если бы это был обычный класс. Для начала (решу проблемы с первым примером кода в их файле readme):
<?php
class Flight
{
/**
* Routes a URL to a callback function.
*
* @param string $pattern URL pattern to match
* @param callback $callback Callback function
* @param boolean $pass_route Pass the matching route object to the callback
*/
public static function route($pattern, $callback, $pass_route = false) {}
/**
* Starts the framework.
*/
public static function start() {}
}
Вот как это выглядит сейчас:
Как вы видете Flight
недооценен - IDE говорит, что в этом проекте существует более одного класса с таким именем. Просто скажите PhpStorm, чтобы не сообщать о таких случаях:
Для добавления методов в исходный класс через @method
Теги PHPDoc:
/**
* Bla-bla -- class description
*
* @method static void route(string $pattern, callback $callback, bool $pass_route = false) Routes a URL to a callback function
* @method static void start() Starts the framework
*/
class Flight
{
...
}