我不確定此問題的標題是否準確,請耐心等待。PHP中的繼承類型
我正在創建一個輕量級的MVC框架。它的工作原理有點像這樣:
Main.php(主類)調用
- 控制器擴展主($這個 - >控制器)和
- 模型擴展的主要($這個 - >模型)
現在模型和控制器類將根據URI調用控制器和模型(例如,Blog.php [extends Controller])。 (所以對於回顧:Main.php調用$ this-> model和$ this-> controller.Controller類調用Blog extends Controller)。
從Blog.php中,我如何訪問Controller中的函數以及Main中的函數?
我問這是因爲在控制器中我需要訪問我的URI類中的函數,但我不能這樣做,因爲PHP告訴我當$ this-> uri時對象不存在。
在每類做$ this-> controller,$ this-> model和$ this-> uri似乎是不好的做法。
我的一位朋友建議我使用名爲__get()的Magic Method。這看起來正確嗎?
class Main
{
function __construct() {
loadClasses();
loadUri();
}
function loadClasses() {
$this->controller = new Controller();
$this->uri = new Uri();
$this->load = new Load();
}
function loadUri() {
//Using the uri, determine what Controller to load.
}
}
class Controller
{
...
}
class Blog extends Controller
{
$this->load->view(); //Should access the view function in the load class
}
要麼你濫用術語「擴展」,要麼你認真濫用OOP。 – zzzzBov 2011-03-07 20:39:20
_From Blog.php,我如何訪問控制器中的函數,以及Main中的函數?_ - 使用父類引用父類中的方法parent :: method_from_Controller();' – criticus 2011-03-07 20:42:38