Maksclub
@Maksclub
maksfedorov.ru

Как подсвечивать магические классы в Phpstrom?

В одной ЦМС классы подключаются магией:
Массив с классами
// Свойства - Классы API
	private $classes = array(
		'config'     => 'Config',
		'request'    => 'Request',
		'db'         => 'Database',
		'blog'         => 'Blog',
       ...
       );

	 /**
	 * Магический метод, создает нужный объект API
	 */
	public function __get($name)
	{
	 // Если такой объект уже существует, возвращаем его
		if(isset(self::$objects[$name]))
		{
			return(self::$objects[$name]);
		}
}


Затем далее в коде объект создается таким образом (например объект класса Blog.php):
// Выбираем пост из базы
$post = $this->blog->get_post($url);


Но в Phpstorm не подсвечиваются доступные методы этого класаа -- как можно сделать? Есть ли какие расширения для IDE?
  • Вопрос задан
  • 292 просмотра
Решения вопроса 1
Можно если руками каждый метод описывать.

/**
 * Class A
 *
 * @method get_post (string $url)
 */
class A
{
}

Если это статический метод, то писать так @method static get_post (string $url)

Если нужна цепочка вызова, то там нужно писать так @method $this get_post (string $url = '') (Если возвращается класс, то $this заменить на название класса)

9bd90f384757456e942f4740d11dd347.png
или
19616338ee92491a851b55003bea731d.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
1. Искать плагин для вашей CMS.
2. Использовать PhpDoc.
3. Не использовать магию.
Ответ написан
@4iloveg
Full-Stack HTML Developer
В phalcon 3 фреймворк в виде расширения C. Но всё подсвечивается за счет документации с заглушками.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы