2013-07-15 93 views
0

我正在開發個人項目,這是我第一次使用OOP。我的項目有一個基礎類,由其他人擴展(基本設置)。爲了澄清,這是我在做什麼:在PHP中加載基類+擴展類的正確方法

基類:

class ABC { 
    function __construct() { 
    ... 
    } 
} 

擴展類:

class DEF extends ABC { 
    function __construct() { 
    ... 
    } 
} 

雖然基類總是加載,其他類裝入根據的情況。

我的問題是,什麼是正確的方式來動態加載正確的擴展類?我應該「導入」這兩個PHP?我應該投下基類($ x = new ABC()),然後從基類中加載另一個類?

+0

你必須使用自動加載磁帶機,也就是說,你可以告訴PHP,其中在需要時加載類的http:/ /php.net/manual/en/language.oop5.autoload.php http://www.codeforest.net/autoload-your-classes-in-php –

回答

0

你可以在你的文件的頂部使用autoloader

function __autoload($className) { 
    require_once $className . '.php'; 
} 

或者你可以使用constuctor和進口手動php文件的父類在子類constuctor:

require_once(your_file.php); 

class DEF extends ABC { 

    function __construct() { 
     parent::__construct(); 
    } 
} 
0

如果你把所有的類放在同一個文件夾中,並將它們命名爲[class] .php,你可以在腳本的頂部放置以下內容,並且它們全部會被神奇地加載:

<?php 
    function __autoload($class_name) { 
     require_once $class_name . '.php'; 
    } 

如果他們進入不同的文件夾,只是實現自己的計劃

參考:http://php.net/manual/en/language.oop5.autoload.php