AptanaStudio 3混合类型的PHP代码完成?
我目前正在AptanaStudio 3(目前看来是3.0.7)中使用PHP。我有一个函数,它将返回另一个对象的实例,但该对象是在运行时确定的。因此,不可能用相关注释装饰功能。相反,我正在寻找一个干净的解决方案,用代码完成的标记来装饰调用方。我该怎么做AptanaStudio 3混合类型的PHP代码完成?,php,ide,aptana,code-completion,Php,Ide,Aptana,Code Completion,我目前正在AptanaStudio 3(目前看来是3.0.7)中使用PHP。我有一个函数,它将返回另一个对象的实例,但该对象是在运行时确定的。因此,不可能用相关注释装饰功能。相反,我正在寻找一个干净的解决方案,用代码完成的标记来装饰调用方。我该怎么做 /** * Represents a person. */ class Person { /** * Contains the identifier. * * @var int */ pu
/**
* Represents a person.
*/
class Person
{
/**
* Contains the identifier.
*
* @var int
*/
public $PersonId;
/**
* Contains the string.
*
* @var string
*/
public $Name;
}
/**
* A simple factor example.
*
* @return mixed
*/
function CreateExample( $zClass )
{
return new $zClass();
}
/* @var $x Person */
$x = CreateExample( 'Person' ) instanceof Person;
在用注释和instanceof进行装饰后,它终于起作用了,但这看起来很可怕!没有更好的方法使用一种解决方案并使其按预期工作吗?好的。首先,我相信
CreateExample('Person')instanceof Person
只需将一个基本布尔值赋给$x
。这也是您无法在$x
上获得代码帮助的原因,即使您编辑CreateExample
返回到@return Person
设置$x=CreatePerson('Person')如果您的CreateExample
文档设置正确,code>将为您获取CA
现在,由于您有一个混合返回类型,一个解决方案是使用@var
doc,就像您所做的那样。但是,您可以使用另一种解决方案
我假设您知道所有可能的返回类型,因此在这种情况下,您可以在CreateExample
@return:
@return Person | OtherClass | third class
现在,当您编写代码assist$x
时,您将获得来自所有管道类的所有可用元素的聚合
希望有帮助