출력된 HTML을 본 것만으로, Cakephp의 어느 View의 내용인지 곧바로 알게 한다

4397 단어 PHPCakePHPcakephp2
디자인 변경으로 Cakephp의 View 파일을 수정할 때 해당 HTML 부분이 어느 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 -->

됩니다.
그렇다면 참고하십시오.
또는 더 좋은 방법이 있으면 댓글에서 공유를 기다리고 있습니다

좋은 웹페이지 즐겨찾기