从2班继承

时间:2017-09-06 11:08:57

标签: php inheritance

这是抽象视图

<?php
abstract class Abstract_View
{
     abstract function render($name);
}
?>

这是视图

class View extends Abstract_View
{
function render($name)
{
    require __DIR__.'/../views/header.php';
    require __DIR__.'/../views/'.$name.'.php';//jaye $name masaln miad index/index
    require __DIR__.'/../views/header.php';
}
}

在我的控制器类中,我从视图类实例化到其他类,以便从控制器类继承视图类

<?php
class Controller 
{
function __construct()
{
    $this->view = new View();
}
}

我为索引控制器

创建了一个抽象类
<?php
abstract class Abstract_Index
{
abstract function index();
}
?>

这是索引:

<?php
class Index extends Controller
{
function __construct()
{
    parent::__construct();
}
public function index(){
    $this->view->render('index/index');
}
}

我的问题是我必须从Controller继承使用对象视图,我必须继承表单抽象索引以及如何继承两个类,这是正确的吗?

1 个答案:

答案 0 :(得分:0)

abstract class Abstract_Index extends Controller

class Index extends Abstract_Index

这应该有效。

同样删除构造函数,因为除了调用父构造函数之外什么都不做。缺少构造函数意味着默认情况下将调用父项。

或者,因为index()方法是抽象的,可能只是让它成为一个接口?

<?php

interface IndexableInterface
{
    public function index();
}

然后实施它。

<?php 

class Index extends Controller implements IndexableInterface
{
    public function index()
    {
        // etc
    }
}