【发布时间】:2015-02-17 03:33:04
【问题描述】:
这是我在 stackoverflow 上的第一篇文章!
我正在开发一个 PHP 框架,我需要为对象提供类型提示。
我将列出我正在使用的结构示例:
一个
Database类,用作“入口点”。此类使用 PDO 连接到数据库,并具有UserSet属性一个
UserSet类,它扩展了Set(用作用户集合)- 一个具有类似 SQL 方法的
Set类 - 一个
User类,仅使用 Table 道具
例子
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 */
这样我在将选择分配给 var 时得到类型提示
$result = $database->UserSet->select()
但是 $result 既是 User 类型又是 UserSet 类型,我在完成代码弹出窗口 (Netbeans) 中有来自 User 和 UserSet 的提示,而我希望它是类型 UserSet,并且只有在迭代时才有 User 提示。
(类似于UserSet
有可能达到吗?
抱歉,帖子太长了!谢谢大家!
【问题讨论】:
-
为什么你的
select()函数返回不同的类型?这取决于什么。此外,在这种情况下,您所问的更多与 IDE 相关,即 Netbeans。此外,为什么您希望在迭代时看到User提示,那里的逻辑是什么?我几乎 99% 确定您所要求的内容无法在 Netbeans 中完成,但也许有其他解决方案可以解决您的问题。
标签: php object type-hinting