42 lines
773 B
PHP
42 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);}
|
|
|
|
}
|
|
|
|
?>
|