출력된 HTML을 본 것만으로, Cakephp의 어느 View의 내용인지 곧바로 알게 한다
그것이 하나의 View로 완결되어 있다면 아직도 다수의 Element를 사용하고 있다고 합니다.
id나 class로 검색하는 것도 귀찮습니다. . 더 이상 검색하지 않아도 확실히 특정할 수 있도록 하고 싶다.
그래서 로컬 환경에 한해 HTML상에 어떤 View 파일의 내용인지 코멘트를 출력하는 Helper 메소드를 작성했습니다.
구체적인 Helper 메소드의 처리를 이하에 기재합니다.
SampleHelper.php
/**
* View開始のHTMLコメント
*/
function viewStartComment()
{
return $this->viewComment();
}
/**
* View終了のHTMLコメント
*/
function viewEndComment()
{
return $this->viewComment(true);
}
/**
* ViewのHTMLコメント出力共通処理
*/
private function viewComment($viewEnd = false)
{
if (env("CAKE_ENV") !== "local"])) {
return "";
}
$debugBackTrace = debug_backtrace();
$viewPath = $debugBackTrace[1]["file"];
$status = $viewEnd ? "END" : "START";
return "<!-- {$status} {$viewPath} -->";
}
하는 일은 php의 debug_backtrace 메소드를 사용하여 호출자의 View 파일 경로를 HTML 주석으로 출력합니다.
※덧붙여서
$debugBackTrace[1]["file"]
로 하고 있는 이유는, $debugBackTrace[0]["file"]
그렇다면 viewComment 메소드를 불렀던 viewStartComment/viewEndComment 메소드의 정보가 되어 Helper의 파일 패스가 잡혀 버리기 때문입니다.그리고는 이러한 Helper 메소드를 View의 최초와 마지막에 부를 뿐.
index.ctp
<?= $this->Sample->viewStartComment()?>
<div>サンプルだよ</div>
<?= $this->Sample->viewEndComment()?>
그러면 출력 된 HTML에서 · ·
<!-- START /var/www/html/sample/app/View/Samples/index.ctp -->
<div>サンプルだよ</div>
<!-- END /var/www/html/sample/app/View/Samples/index.ctp -->
됩니다.
그렇다면 참고하십시오.
또는 더 좋은 방법이 있으면 댓글에서 공유를 기다리고 있습니다
Reference
이 문제에 관하여(출력된 HTML을 본 것만으로, Cakephp의 어느 View의 내용인지 곧바로 알게 한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/endam/items/c8128efc487d027e01d0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)