Появилась задумка сделать выполнение чего-либо до и после выполнения приложения, вот входная точка: Код (PHP): <?php require __DIR__.'/system/functions.php'; require __DIR__.'/system/autoload.php'; require __DIR__.'/system/bootstrap.php'; $app = new Application; $app->boot(); Файл system/bootstrap.php Код (PHP): <?php Application::before(function (/*здесь разные параметры*/) { // Вот это происходит в самом начале }); Application::after(function (/*здесь разные параметры*/) { // А это в самом конце }); Такое ведь можно сделать? Может есть хороший мануал по анонимным функциям? Но желательно на примере. Насколько я понял, нужно в методе Application::before() принимать параметр (функцию) и записывать в переменную, а потом с помощью call_user_func() вызывать функцию из переменной? Добавлено спустя 11 минут 27 секунд: Я кажется сам разобрался, всем спасибо!
Я так сделал Код (PHP): <span class="syntaxdefault"></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br /><br />class Application </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> private $response</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> <br /> private static $before</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> private static $after</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> <br /> public function __construct</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{}<br /></span><span class="syntaxdefault"> public function __destruct</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{}<br /></span><span class="syntaxdefault"> <br /> public static function before</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$callback</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> self</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">$before </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $callback</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> <br /> public static function after</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$callback</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> self</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">$after </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $callback</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> <br /> public function boot</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> call_user_func</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">self</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">$before</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> $route </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new Route</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">response </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $route</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">render</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"> call_user_func</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">self</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">$after</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">render</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> <br /> public function render</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> echo $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">response</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br />} </span><span class="syntaxdefault"></span>
Лучше тогда менеджер событий реализовать. Классная штука. Очень гибкая. Вот пример такого: http://phpfiddle.org/main/code/qpvd-9mgg