это мой первый пост в 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 ‹ User >, думая как Java)
Можно ли этого достичь?
Простите за длинный пост! Спасибо вам всем!
select()
возвращает разные типы? От чего это зависит. Кроме того, то, что вы спрашиваете, больше связано с IDE, в данном случае с Netbeans. Кроме того, почему вы ожидаете увидеть подсказкиUser
при повторении, какова логика? Я почти на 99% уверен, что то, что вы просите, невозможно сделать в Netbeans, но, возможно, есть альтернативное решение вашей проблемы. - person ziGi   schedule 18.12.2014