我想写一个对象“ widget”,它将具有显示方法以显示一些小部件,标题,图标,并且我希望具有子对象,该子对象将定义要填充的数据。
所有小部件将具有相同的HTML模板,但内容不同。因此,我想要一些基本的小部件和子对象,它们将定义要填充在同一HTML模板中的数据。
示例:
class basicWidget {
public $title;
public $id;
public $icon;
public $url;
public function __construct($id,$title,$icon,$url="")
{
$this->id = $id;
$this->title = $title;
$this->icon = $icon;
$this->url = $url;
}
private function prepareData()
{
return "my data";
}
public function ReturnWidget()
{
$re="<div class=myhtmltemplate>".$this->prepareData()."</div>";
return $re;
}
public function Show()
{
echo($this->ReturnWidget());
}
}
class WidgetUserHistory extends basicWidget {
private function prepareData()
{
return "user history data";
}
我想为新的窗口小部件准备新的内容,该内容将应用于basicWidget对象的HTML模板-所有窗口小部件都将具有相同的HTML模板,但内容不同,但是它将返回父级的数据,而不是数据形式重写了prepareData()方法。
任何更好的主意,怎么做,我想要什么?
public function ReturnWidget(){
$re=parent::ReturnWidget();
return $re;
}
public function Show(){ // ukaz staticky widget
extecho($this->ReturnWidget());
}
}
嗯,问题是,我将其声明为私有函数。