<?php
interface MakeMeCMS_Listener_interface {
public function __construct($method, $args);
public function setFeedback($arg, $type);
public function feedback();
}
class MakeMeCMS_Listener implements MakeMeCMS_Listener_interface {
private $_feedback;
private $_type;
public function __construct($method, $args) {
if(method_exists($this, $method)) {
if($args != '') {
if(preg_match('#\,#', $args)) {
$args = explode(',', $args);
}
$this->$method($args);
}
else {
$this->$method();
}
}
}
public function setFeedback($arg,$type) {
$this->_feedback = $arg;
$this->_type = $type;
}
public function feedback() {
return $this->_feedback;
}
private function test(array $args) {
$string = '';
foreach($args as $arg) {
$string .= $arg.' ';
}
$this->setFeedback($string, 'text/plain');
}
}
class myAddon_Listener extends MakeMeCMS_Listener implements MakeMeCMS_Listener_interface {
public function __construct($method, $args) {
if(method_exists($this, $method)) {
if($args != '') {
if(preg_match('#\,#', $args)) {
$args = explode(',', $args);
}
$this->$method($args);
}
else {
$this->$method();
}
}
}
public function setFeedback($arg, $type) {
parent::setFeedback($arg, $type);
}
public function feedback() {
return parent::_feedback;
}
private function test2() {
echo('Hello World!');
}
}
$listener = new MakeMeCMS_Listener('test', 'foo,bar');
echo($listener->feedback());
$customListener = new myAddon_Listener('test2');
echo($customListener->feedback());
preferences:
48.91 ms | 402 KiB | 5 Q