Интерфейс может
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();