ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP 3.1.2 バージョンのテンプレート継承の復号_PHP チュートリアル

ThinkPHP 3.1.2 バージョンのテンプレート継承の復号_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:24:261003ブラウズ

テンプレート継承は、ThinkPHP 3.1.2 バージョンで追加された、より柔軟なテンプレート レイアウト方法です。実際には、テンプレート レイアウトの上位層にある必要があります。テンプレートの継承は実際には理解するのが難しくありません。クラスの継承と同様に、テンプレートでも基本テンプレート (またはレイアウト) を定義し、その中に関連するブロックを定義して、基本テンプレートのサブテンプレートをオーバーロードできます。基本テンプレートで定義されたブロック。

したがって、テンプレート継承の利点は、実際には、ベース テンプレート内のブロックを設計し、サブテンプレート内のこれらのブロックを置き換えることです。
各ブロックは タグで構成されており、ブロック タグのネストはサポートされていません。
以下は、基本テンプレート (Web サイトのタイトルのデザインに使用される) の典型的なブロック デザインです:

リーリー

ブロック タグには、現在のブロックの名前を識別するための name 属性を指定する必要があります。この識別子は、現在のテンプレート内で一意である必要があります。ブロック タグには、次のような他のタグや変数を含めることができます。

リーリー
外部ファイルをブロック単位でロードすることもできます:

リーリー
テンプレートでは、一意の名前と識別子を持つ任意の数のブロックを定義できます。たとえば、base.html の基本テンプレートは以下のように定義されます。

リーリー

次に、子テンプレート (実際には現在の操作のエントリ テンプレート) で継承を使用します。

リーリー

最新ニュース:

リーリー

ご覧のとおり、extend タグは継承する必要があるテンプレートを定義するためにサブテンプレートで使用されます。extend タグの使用法は include タグと同じです。
他のテンプレートを読み込むこともできます。

リーリー

または絶対ファイルパスを使用してロードします

リーリー

現在のサブテンプレートでは、ブロックのみを定義でき、他のテンプレート コンテンツは定義できません。それ以外の場合は直接無視され、基本テンプレートで定義されているブロックのみを定義できます。
たとえば、次の定義を取るとします。


リーリー

ナビゲーション セクションは無効になり、テンプレートには表示されません。

サブテンプレートでは、基本テンプレートのブロックの定義をオーバーロードできます。再定義されていない場合は、空のブロックが定義されている場合、それが使用されることを意味します。基本テンプレートは のこのブロックの内容を削除します。

上の例では、左側のブロックの内容を削除し、他のブロックを再ロードしました。

サブテンプレート内のブロック定義の順序は任意です。テンプレート継承を使用する鍵は、基本テンプレートのレイアウトとデザイン計画にあります。オリジナルのレイアウト機能と組み合わせることで、より柔軟になります。

http://www.bkjia.com/PHPjc/825440.html

tru​​ehttp://www.bkjia.com/PHPjc/825440.html技術記事テンプレート継承は、ThinkPHP 3.1.2 バージョンで追加された、より柔軟なテンプレート レイアウト方法です。実際には、テンプレート レイアウトの上位層にある必要があります。テンプレートはそのテンプレートを継承します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。