我最近创建了一个类来创建 HTML 元素。我决定使用魔术方法 __get 和 __call,而不是为每个现有的 HTML 元素和属性创建一个方法。所以用我的代码我基本上可以做到这一点:
$signUpForm->insert->input->type('text')->name('firstName')->maxlength(100)->disabled
$signUpForm->insert->input->type('email')->name('emailAddress')->maxlength(100)
等等
但既然我决定保持这种“魔法”和简单,我也可以这样做:
$signUpForm->insert->magic->trick('rabbit')->accessory('hat')
这将导致:
<magic trick='rabbit' accessory='hat'>
这一切都很好,因为在我看来,它减少了很多样板代码,并且完全符合我的需要。我不想要一个类来强制执行 HTML 标准,我想要一个类来促进 HTML,因为你知道如何使用它(老实说,这样做的代码很小)
所以我的问题是,考虑到这个类可以接受任何未定义的属性或方法,有没有办法在 PHPDoc 中指定这种行为?我尝试了以下没有任何运气:
/**
* @property HtmlElementAttribute * Insert a new HTML element attribute
* @method HtmlElementAttribute * Insert a new HTML element attribute
*/
我不知道这是否只是 PHPStorm 的事情,但我在任何地方都找不到任何类似的场景......
另外,如果您想知道我为什么要这样做,它是为了跟踪我的 PHP 代码中的某些 HTML 方面(例如,在表单中声明的 ID,或在表单中的元素)。这可以让我在将 HTML 发送给最终用户之前对其进行查看。