CodeIgniter ビューへのヘッダーとフッターの組み込みを自動化するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-03 00:08:30
オリジナル
456 人が閲覧しました

How Can I Automate Header and Footer Inclusion in CodeIgniter Views?

CodeIgniter でヘッダーとフッターを自動化する

CodeIgniter のデフォルトのビュー読み込みプロセスでは、すべてのコントローラーにヘッダー ビューとフッター ビューを含める反復タスクが必要です。複数のコントローラーやビューを操作する場合、これは退屈で時間がかかる可能性があります。

この問題に対処するには、カスタム ローダー クラスを作成して、ヘッダー ビューとフッター ビューを含めるプロセスを自動化できます。これにより、開発者は各コンポーネントのload->view() メソッドを明示的に呼び出さずにビューをロードできるようになります。

カスタム ローダー クラス

アプリケーション/コアに MY_Loader.php という名前の新しいファイルを作成します。ディレクトリ。このファイルは CodeIgniter の CI_Loader クラスを拡張し、新しい template() メソッドを追加します。

<code class="php">// application/core/MY_Loader.php

class MY_Loader extends CI_Loader {
    public function template($template_name, $vars = array(), $return = FALSE) {
        $content  = $this->view('templates/header', $vars, $return);
        $content .= $this->view($template_name, $vars, $return);
        $content .= $this->view('templates/footer', $vars, $return);

        if ($return) {
            return $content;
        }
    }
}</code>
ログイン後にコピー

template() メソッド内:

  • ヘッダー ビューを $ にロードします。 content 変数。
  • 次に、指定されたビュー (例: body) を $content に読み込みます。
  • 最後に、フッター ビューを読み込み、$content に追加します。
  • $return が TRUE に設定されている場合、結合されたコンテンツが返されます。それ以外の場合は、結合されたビューが表示されます。

コントローラーでの使用法

カスタム ローダー クラスを作成した後、コントローラーのコンストラクターを更新して拡張ローダーをロードします:

<code class="php">class My_Controller extends CI_Controller {
    public function __construct() {
        parent::__construct();
        $this->load = new MY_Loader();
    }
}</code>
ログイン後にコピー

これで、template() メソッドを使用してビューを読み込むことができます。

<code class="php">$this->load->template('body');</code>
ログイン後にコピー

これにより、ヘッダー、本文、およびフッターのビューが自動的に読み込まれます。必要に応じて変数をビューに渡すこともできます。

以上がCodeIgniter ビューへのヘッダーとフッターの組み込みを自動化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート