Интерфейс может
extends
(расширять) родительский интерфейс:
<?php
interface a
{
public function foo();
}
interface b extends a
{
public function baz(Baz $baz);
}
Напишите интерфейс
ModelInterface
, который бы класс
Model
воплощал.
Создайте новый интерфейс
ArticleInterface
, наследующий
ModelInterface
:
interface ArticleInterface extends ModelInterface
{
// доп. методы
}
class Article implements ArticleInterface
{
}
Итого объявление класса Article будет примерно таким:
class Article extends Model implements ArticleInterface
рабочий код<?php
interface ModelInterface
{
public function get();
public function all();
}
interface ArticleInterface extends ModelInterface
{
public function publish();
}
class Model implements ModelInterface
{
public function get()
{
return "get";
}
public function all()
{
return "all";
}
}
class Article extends Model implements ArticleInterface
{
public function publish() {
return "published!";
}
}
$article = new Article();
echo $article->get();
echo $article->publish();