3

OOP を学習しようとしていますが、テストのためだけに、さまざまなメソッドでメイン クラスを作成したいと考えています。この場合、CodeIgniter のようなコントローラーを「ロード」します。

$app->load->controller('test')

load()の方法ですMain()が、どうcontroller()ですか?

これは私がこれまでに持っているものですが、明らかに機能していません。コントローラー名を Load/controller クラスに渡す方法がわかりません

class Main {
    public function load()
    {
        $loader = new Load();
        $loader->controller('index');
    }
}

class Load {
    public function controller($class)
    {
        $class = ucfirst($class);
        $class = new $class();
        $class->index();    
    }
}

class Test {
    function index()
    {
        echo 'class: test - method: index';
    }
}

$main = new Main;
$controller = $main->load->controller('test');
4

2 に答える 2

4

あなたはこれを試すことができます

class Main {

    public function load()
    {
        //include "Load.php";
        return new Load();
    }

}

class Load {

    public function controller($class = '')
    {
        if( file_exists( $class . '.php') ) {
            include $class . '.php';
            $class = ucfirst($class);
            return new $class;
        }
    }

}

$main = new Main;
$controller = $main->load()->controller('testClass');
$controller->index(); // Assume testClass has an index method

デモ。

于 2013-05-27T21:06:03.027 に答える