최근에 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 코드 (form 내에 선언 된 ID들 또는 form 내부의 요소들)의 특정 HTML aspect를 추적하는 것이다. 이렇게하면 최종 사용자에게 보내기 전에 HTML에서 가시성을 확보 할 수 있습니다.
1) PHPDoc 자체에는 메소드/속성 이름에 대해 '*'wildcart 지원이 없습니다. 따라서 수동으로 각 메소드를 선언해야합니다. 2) PhpStorm에서 이러한 경고 메시지의 우선 순위를 낮추거나 검사를 완전히 비활성화 할 수 있습니다. – LazyOne
@LazyOne 확인을 해 주셔서 감사합니다! –