すべてのビューに渡したいデータがあります。私はCodeIgniter 3を使用しており、PHP 7を利用できます。現在の私のやり方は、すべての機能でこのようなものを使用していることです。OOPとDRYを使用してモデルからすべてのビューにデータを取得
$data['foobar'] = $this->general_model->foobar();
// More code
$this->load->view('homepage', $data);
私はすべての単一機能に$data['foobar'] = $this->general_model->foobar();
を呼び出す必要はありません。
私はこれを修正するために、コードをあまりにも曖昧にするものに頼らずに多くのアプローチを試みました。私はコンストラクタ、オートロード、そしてフックを試しました。それぞれの場合の問題点は、$data
が各機能に対してローカルであるという事実による。私が得た最高のものは、通常これのようなものです。
$data['foobar'] = $this->foobar;
// More code
$this->load->view('homepage', $data);
これはやや上手ですが、それでもすべての機能にこの行が表示されます。
私の機能は、foobar
が既に設定された$data
を幾つか継承したいと思います。私はパラメータとして$data
を受け取るすべての関数を必要とする解決策を避けることを望むでしょう。どうすればこれを達成できますか?
オプションを持っているでしょう。 – Goose
あなたは大歓迎です:) – TimBrownlaw