ホームページ  >  記事  >  バックエンド開発  >  CakePHP はテンプレートの継承をどのように実行しますか?

CakePHP はテンプレートの継承をどのように実行しますか?

WBOY
WBOYオリジナル
2023-06-05 09:51:061093ブラウズ

Web アプリケーションの継続的な開発に伴い、オープンソース フレームワークがますます登場していますが、その中でも CakePHP は最も注目を集めている PHP フレームワークの 1 つです。 CakePHP では、テンプレートの継承は非常に一般的に使用されるテクノロジーであり、ページをより適切に整理し、繰り返しのコード記述を減らすのに役立ちます。では、CakePHP はどのようにしてテンプレートの継承を実行するのでしょうか?

1. テンプレート継承の概念

テンプレート継承は、マスター ビューまたはテンプレートをサブビューまたはテンプレートに適用する技術です。このテクノロジーにより、ページ内の共通コンテンツを抽出してマスター ビューに編成し、サブビューでマスター ビューを参照することができます。これにより、ページの管理と保守が容易になり、冗長なコードの記述も削減されます。

2. CakePHP でのテンプレート継承の実装

CakePHP は、PHP に基づいた強力で柔軟なテンプレート エンジンを提供し、テンプレートの継承をサポートします。次にCakePHPでテンプレートの継承を実装する方法を説明します。

  1. マスター ビューの作成

まず、マスター ビューを作成する必要があります。通常、マスター ビューには、Web サイトのヘッド ナビゲーション、下部の著作権、その他の情報など、各ページに必要なパブリック コンテンツが含まれています。

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/ ディレクトリに、新しい demo.ctp ファイルをサブビューとして作成します。 demo.ctp ファイルには、マスター ビューとは異なるページ コンテンツを記述するだけで済みます。

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

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

サブビューの上部で、$this->extend('default')を使用してマスター ビューを参照し、サブビューがマスター ビューのレイアウトを継承するようにします。そして構造。同時に、$this->assign('title', 'これはサブビュー ページ タイトルです') を使用してページ タイトルを渡すことができます。

サブビューのコンテンツ部分では、マスター ビューとは異なるページ コンテンツを記述することができ、これらのコンテンツはマスター ビューの対応するプレースホルダーを置き換えます。たとえば、上記のdemo.ctpファイルでは、c1a436a314ed609750bd7c7d319db4daタグとe388a4556c0f65e1904146cc1a846beeタグを使用してサブビューページのコンテンツを記述しています。

  1. ページのレンダリング

マスタービューとサブビューを作成したので、CakePHP を使用してページをレンダリングできます。コントローラーでは、$this->render('demo') または $this->render('/Controller/demo') を使用してデモをレンダリングできます。 ctp サブビュー。

class DemoController extends AppController
{
    public function index()
    {
        $this->render('demo');
    }
}

index 関数にアクセスすると、CakePHP は、demo.ctp サブビューを自動的にレンダリングし、マスター ビューの default.ctp に埋め込みます。

3. 概要

この記事では、マスタービューの作成、サブビューの作成、ページのレンダリングなど、CakePHP でのテンプレートの継承に関する基本的な知識を学びました。テンプレートの継承は非常に一般的に使用されるテクノロジであり、ページをより適切に整理し、繰り返しのコード記述を減らすのに役立ちます。 CakePHP で開発する場合、テンプレートの継承は、ページの管理と保守をより便利に行うのに役立つ非常に便利なテクノロジでもあります。

以上がCakePHP はテンプレートの継承をどのように実行しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。