43 lines
773 B
PHP
43 lines
773 B
PHP
|
<?php
|
||
|
|
||
|
namespace alveolata\observer;
|
||
|
|
||
|
require_once(DIR_ALVEOLATA . '/observer/functions.php');
|
||
|
|
||
|
|
||
|
/**
|
||
|
*/
|
||
|
class class_observer
|
||
|
{
|
||
|
|
||
|
/**
|
||
|
* @var struct
|
||
|
* @author Christian Fraß <frass@greenscale.de>
|
||
|
*/
|
||
|
private $subject;
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @author Christian Fraß <frass@greenscale.de>
|
||
|
*/
|
||
|
private function __construct(struct $subject) {$this->subject = $subject;}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @author Christian Fraß <frass@greenscale.de>
|
||
|
*/
|
||
|
public static function make() : class_observer {return (new class_observer(make()));}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* implementations
|
||
|
*
|
||
|
* @author Christian Fraß <frass@greenscale.de>
|
||
|
*/
|
||
|
public function register(\Closure $procedure) {return register($this->subject, $procedure);}
|
||
|
public function notify($data) {notify($this->subject, $data);}
|
||
|
|
||
|
}
|
||
|
|
||
|
?>
|