我最近創建了一個類來創建HTML元素。通過爲每個現有的HTML元素和屬性創建一個方法,我決定使用魔術方法__get和__call來代替麻煩。所以,我的代碼我基本上可以做到這一點:PHPdoc動態魔術屬性(或方法)
$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中具有可見性。
1)PHPDoc本身對方法/屬性名稱沒有'* wildcart支持,**全部**。因此您必須手動聲明每種方法2)在PhpStorm中,您可以降低此類警告消息的優先級或完全禁用此類檢測 – LazyOne 2014-12-06 22:41:39
@LazyOne感謝您的確認! – 2014-12-06 23:22:42