0

クラスロードのオブジェクトであるloadというプロパティを持つクラスベースがあります。load クラスには、ページを含む view という機能があります。今、私は電話する必要があります、

これは、CodeIgniter の $this->load->view("test.php"); に似ています。

負荷クラス

class Load {
    public function view($page){
        //this function loads views to display
        include($page);
    }
    public function model($class){
        //loads model classes
    }
    public function library($class){
        //loads libraries
    }
}

基本クラス

class Base {
    function __construct(){
        $this->load = new Load();
    }
}

目次ページ

$base = new Base();
$base->load->view("test1.php");

this1.php

echo "testing1\n";

$this->load->view("test2.php");

test2.php

echo "testing2";

出力は

testing1
testing2
4

2 に答える 2

1

あなたが本当に望んでいるのは、工場のパターンに従うことだと思います。$view(少なくとも、変数に実際にLoadクラスのインスタンスを含めたい場合は、それが意味します)

クラスのみが新しいインスタンスを作成できるように、コンストラクターを保護してから、基本クラスに、目的のクラスのインスタンスを返す「factory」などの静的メソッドを追加します。

次に、コードは次のようになります

$view=Base::factory();
$view->view("test1.php");
于 2013-07-24T07:04:58.727 に答える