>  기사  >  백엔드 개발  >  CakePHP는 템플릿 상속을 어떻게 수행합니까?

CakePHP는 템플릿 상속을 어떻게 수행합니까?

WBOY
WBOY원래의
2023-06-05 09:51:061137검색

웹 애플리케이션의 지속적인 개발과 함께 점점 더 많은 오픈 소스 프레임워크가 우리의 시야에 등장했으며, 그중 CakePHP는 많은 관심을 끌고 있는 PHP 프레임워크 중 하나입니다. CakePHP에서 템플릿 상속은 페이지를 더 효과적으로 구성하고 반복적인 코드 작성을 줄이는 데 도움이 되는 매우 일반적으로 사용되는 기술입니다. 그렇다면 CakePHP는 템플릿 상속을 어떻게 수행합니까?

1. 템플릿 상속의 개념

템플릿 상속은 마스터 뷰나 템플릿을 하위 뷰나 템플릿에 적용하는 기술입니다. 이 기술을 통해 페이지의 공통 콘텐츠를 추출하여 마스터 뷰로 구성하고 하위 뷰에서 마스터 뷰를 참조할 수 있습니다. 이를 통해 페이지를 더 쉽게 관리하고 유지할 수 있으며 중복된 코드 작성도 줄어듭니다.

2. CakePHP에서 템플릿 상속 구현

CakePHP는 PHP 기반의 강력하고 유연한 템플릿 엔진을 제공하며 템플릿 상속을 지원합니다. CakePHP에서 템플릿 상속을 구현하는 방법을 설명하겠습니다.

  1. 마스터 뷰 만들기

먼저 마스터 뷰를 만들어야 합니다. 마스터 뷰에는 일반적으로 웹 사이트의 헤드 탐색, 하단 저작권 및 기타 정보와 같이 각 페이지에 필요한 공개 콘텐츠가 포함됩니다.

app/View/Layouts/ 디렉터리에 새 default.ctp 파일을 만듭니다.

<html>
    <head>
        <title><?php echo $this->fetch('title'); ?></title>
    </head>
    <body>
        <header>
            <h1>CakePHP模板继承示例</h1>
            <nav>
                <ul>
                    <li><a href="#">首页</a></li>
                    <li><a href="#">关于我们</a></li>
                    <li><a href="#">联系我们</a></li>
                </ul>
            </nav>
        </header>
        <div id="content">
            <?php echo $this->fetch('content'); ?>
        </div>
        <footer>
            <p>&copy;2019 CakePHP模板继承示例</p>
        </footer>
    </body>
</html>
  1. 하위 뷰 만들기

app/View/ 디렉터리에서 새 데모.ctp 파일을 하위 뷰로 만듭니다. Demo.ctp 파일에서는 마스터 뷰와 다른 페이지 콘텐츠만 작성하면 됩니다.

<?php $this->extend('default'); ?>
<?php $this->assign('title', '这是子视图页面标题'); ?>

<h2>这是子视图页面内容</h2>
<p>这是一个CakePHP模板继承的示例</p>

하위 뷰 상단에서 $this->extend('default')를 사용하여 마스터 뷰를 참조하므로 하위 뷰가 마스터 뷰의 레이아웃과 구조를 상속합니다. 동시에 $this->asset('title', 'This is the subview page title')을 사용하여 페이지 제목을 전달할 수 있습니다. $this->extend('default') 来引用母版视图,这样就让子视图继承了母版视图的布局和结构。同时,我们可以使用 $this->assign('title', '这是子视图页面标题')来传递页面标题。

在子视图的内容部分,我们可以写入与母版视图不同的页面内容,这些内容会替换母版视图中相应的占位符。比如在上面的demo.ctp文件中,我们用 c1a436a314ed609750bd7c7d319db4dae388a4556c0f65e1904146cc1a846bee 标签写入了子视图页面的内容。

  1. 渲染页面

现在,我们已经创建了母版视图和子视图,可以使用CakePHP来渲染页面了。在控制器中,我们可以使用 $this->render('demo') 或者 $this->render('/Controller/demo')

하위 뷰의 콘텐츠 섹션에서 마스터 뷰와 다른 페이지 콘텐츠를 작성할 수 있으며 이러한 콘텐츠는 마스터 뷰의 해당 자리 표시자를 대체합니다. 예를 들어, 위의 데모.ctp 파일에서는 <h2></h2><p></p> 태그를 사용하여 하위 보기 페이지의 내용을 작성합니다. <p></p>
    페이지 렌더링<p></p>

    이제 마스터 뷰와 하위 뷰를 만들었으므로 CakePHP를 사용하여 페이지를 렌더링할 수 있습니다. 컨트롤러에서는 $this->render('demo') 또는 $this->render('/Controller/demo')를 사용하여 데모를 렌더링할 수 있습니다. .ctp 하위 보기.

    class DemoController extends AppController
    {
        public function index()
        {
            $this->render('demo');
        }
    }
    🎜인덱스 기능에 액세스하면 CakePHP는 자동으로 deco.ctp 하위 뷰를 렌더링하고 이를 마스터 뷰 default.ctp에 포함시킵니다. 🎜🎜3. 요약🎜🎜이 기사에서는 마스터 뷰 생성, 하위 뷰 생성 및 페이지 렌더링 등을 포함하여 CakePHP의 템플릿 상속에 대한 몇 가지 기본 지식을 배웠습니다. 템플릿 상속은 페이지를 더 잘 구성하고 반복적인 코드 작성을 줄이는 데 도움이 되는 매우 일반적으로 사용되는 기술입니다. CakePHP로 개발할 때 템플릿 상속은 페이지를 보다 편리하게 관리하고 유지하는 데 도움이 되는 매우 유용한 기술이기도 합니다. 🎜

위 내용은 CakePHP는 템플릿 상속을 어떻게 수행합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.