Подсказка типа PHP при итерации в объект

это мой первый пост на stackoverflow!

Я занимаюсь разработкой фреймворка PHP, и мне нужно предоставить подсказку типа для объектов.

Я собираюсь перечислить пример структуры, которую я использую:

  • Database класс, используемый как «точка входа». Этот класс подключается к базе данных с помощью PDO и имеет
    UserSet имущество

  • UserSet класс, который расширяется Set (задумано как совокупность пользователей)

  • Set класс с SQL-подобными методами
  • User класс, только с настольным реквизитом

пример

Set имеет метод select, который возвращает массив пользователей через PDO;

$prepare = $this->database->prepare($this->sql);
$prepare->execute();
$prepare->setFetchMode(PDO::FETCH_CLASS,  $this->TABLE);
return $prepare->fetchAll();

UserSet переопределение выбрать через @method Оператор, как это:

/** @method User|UserSet select() blablabla */

Таким образом, я получаю подсказку типа, когда присваиваю SELECT

$result = $database->UserSet->select()

но $ result имеет тип User и UserSet, и у меня во всплывающем окне кода завершения (Netbeans) есть подсказки от User и UserSet, хотя хотелось бы, чтобы он был типа UserSet, и имеют User подсказки только при повторении.
(что-то вроде UserSet < Пользователь>, думая как Java)

Возможно ли достичь этого?

Простите за длинный пост! Спасибо всем!

0

Решение

Прежде всего, если ваш select() метод всегда возвращается return $prepare->fetchAll(); тогда ваш тип возврата подсказка в комментарии @method User|UserSet select() неправильно, потому что PDOStatement::fetchAll() возвращает массив.

Предполагая ваш $this->TABLE является 'User' тогда ваш select() метод возвращает массив User объекты. Попробуйте намекнуть это так: @method User[] select(),

0

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

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

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