A continuación comparto la resolución de uno de los ejemplos publicados en la documentación de PHP, en relación a la declaración e implementación de interfaces.
<?php
/*
* Ejemplo basado en la documentación oficial
* de PHP: http://php.net/manual/es/language.oop5.interfaces.php
*/
// Declarar interfaz
interface iTemplate {
public function setVariable($name, $var);
public function getHtml($template);
}
// Implementar interfaz
class Template implements iTemplate {
private $vars = array();
public function setVariable($name, $var) {
$this->vars[$name] = $var;
}
public function getHtml($template) {
foreach($this->vars as $name => $value) {
$template = str_replace('{' . $name . '}', $value, $template);
}
return $template;
}
}
$myVar = new Template;
$myVar->setVariable('nombre', 'Comunidad');
$myVar->setVariable('apellido', 'Platzi');
// El output es <h1>Comunidad Platzi</h1>
echo $myVar->getHtml('<h1>{nombre} {apellido}<h1>');