-
Notifications
You must be signed in to change notification settings - Fork 0
Hook
Karel Wintersky edited this page Dec 10, 2020
·
2 revisions
Простейший механизм-обёртка над классом sabre\event ( http://sabre.io/event/ )
Hook::init();
// где-то там в плагинах на хуки вешаем методы
Hook::register('post:add:comment', function (){
echo 'Event post:add:comment ', PHP_EOL;
});
Hook::register('post:add:topic', function (){
echo 'Event post:add:topic', PHP_EOL;
});
Hook::register('example', function (){
echo 100, PHP_EOL;
}, 100);
Hook::register('example', function (){
echo 90, PHP_EOL;
}, 90);
// где-то там, в ядре делаем вызовы хуков
Hook::run('post:add:topic');
Hook::run('post:add:comment');
Hook::run('create');
Hook::run('example');
Как использовать в шаблонах Smarty:
{assign var=foo value=Arris\Hook::run('')}
https://www.smarty.net/docs/en/advanced.features.static.classes.tpl
или подключить класс: https://www.smarty.net/docs/en/api.register.class.tpl
<?php
namespace my\php\application {
class Bar {
$property = "hello world";
}
}
$smarty = new Smarty();
$smarty->registerClass("Foo", "\my\php\application\Bar");
...
{* Foo translates to the real class \my\php\application\Bar *}
{Foo::$property}