Доброго времени суток! Потихоньку изучаю PHP и заинтересовался тем, как устроены события. Например, в одном участке кода вешаем на событие(предположим удаление пользователя) какую-то функцию. И когда это событие происходит, вызывается функция. Заинтересовался тем, как это работает. Написал очень примитивный класс, в методы которого передается название события и имя функции, которая должна быть вызвана
//---------begin Event
class Event
{
private static $events;
public static function register($event, $func)
{
self::$events[$event]=$func;
}
public static function send($event)
{
foreach (self::$events as $key => $value)
{
if($key==$event)
{
$func=self::$events[$key];
$func();
}
}
}
}
//---------end Event
function func1()
{
echo "programm start!";
}
function func2()
{
echo "program end!";
}
Event::register("program_start", "func1");
Event::register("program_end", "func2");
Event::send("program_start");
//do something
Event::send("program_end");
Event::register('program_start', function(){
echo "Program started!");
});