如何扩展子类?

时间:2012-11-28 16:32:22

标签: php joomla joomla2.5 subclass

我需要使用我自己的几个方法扩展Joomla中的所有模型,所以我再创建一个类

class Staff extends JModelLegacy{

    public function lol(){
        die('lol');
    }
}

用它扩展模型

require JPATH_BASE.'/components/com_component/misc/extend_model.php'; 

class ComponentModelSites extends Staff{
public function saveSiteInfo($input){
        $this->lol();
}

问题在于,当我调用saveSiteInfo时,我发现致命错误,即找不到方法lol,但var_dump(get_class_methods($this));显示JModelLegacy的所有方法。哪里错了?

2 个答案:

答案 0 :(得分:0)

它工作正常,你必须做错其他事。

请参阅http://ideone.com/tDouwQ

<?php
class Staff {

    public function lol(){
        die('lol');
    }
}

class ComponentModelSites extends Staff{
public function saveSiteInfo($input){
        $this->lol();
}
}
$cms = new ComponentModelSites();
$cms->saveSiteInfo(null);

答案 1 :(得分:0)

您的代码运行正常。

<?php

class Staff{

    public function lol(){
        die('lol');
    }
}


class ComponentModelSites extends Staff {

        public function saveSiteInfo($input){
                $this->lol();
        }
}

$obj = new ComponentModelSites();
$obj->saveSiteInfo(1);

给出预期的结果。你必须包含错误的文件或做一些愚蠢的事情,但我无法从举例中说出来。