2013-07-15 75 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