2017 © Pedro Peláez
 

library event

image

infrajs/event

  • Monday, March 12, 2018
  • by akiyatkin
  • Repository
  • 1 Watchers
  • 0 Stars
  • 786 Installations
  • JavaScript
  • 17 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 13 Versions
  • 1 % Grown

The README.md

События

События позволяют реализовать сложную связь разных расширений. Сделать взаимодействие двух расширений более универсальным и стандартизированным. Используя определённые события из расширения А, расширение Б может выполнять свои задачи, о которых расширению А заранее ничего не было известно, что и обеспечивает меньшую связанность., (*1)

Установка через composer

{
    "require":{
        "infrajs/event":"~1"
    }
}

Использование

Тестирование

Для выполнение тестов откройте в браузере /vendor/infrajs/event/tester.php, (*2)

Описание

Event::handler('onshow', function(){
    echo 'onshow';
});
Event::fire('onshow');
Event::handler('print', function(){
    echo 'World';
}, ':somekey');
Event::handler('print', function(){
    echo 'Hello ';
},'somekey');
Event::fire('print');
Есть нативный объект ```Event``` по этому в javascript нужно использовать ```Events```
Events.handler('print', function(){
    console.log('World');
}, ':somekey');
Events.handler('print', function(){
    console.log('Hello ');
},'somekey');
Events.fire('print');

Наличие события c Hello не обязательно для того чтобы сработала подписка с World, но если такой handler есть, то World сработает вторым, после обработчика с клчём somekey., (*3)

Если все подписки имеют ключи и нет ниодного выполненного ключа, то будет выполнена первая подписка в очереди., (*4)

Работа с Infrajs

При генерации событий Event все конфиги установленных или необходимых модулей должны быть обработаны. Чтобы были собраны все подписки., (*5)

    \infrajs\config\Config::get();

Другими словами, использование событий обязывает собирать конфиги всех установленных расширений., (*6)

События одного класса

Если генерируется событие для Класса нужно указать критерий отличия передаваемых объектов друг от друга. Объект данных это ассоциативный массив и требуется ключ, который будет определять уникальность всего массива., (*7)

Event::$classes["Yml"] = function($pos) { 
    return $pos["producer"].$pos["article"];
};

$res = Event::fire('Yml.oncheck', $pos); 
//$pos, например, массив с данными позиции каталога. Уникальность позиции определяется производителем и артикулом.

The Versions

13/05 2017

1.0.10

1.0.10.0 https://github.com/infrajs/event

  Sources   Download

GPL3

The Requires

 

26/04 2017
16/12 2016
14/08 2016
29/07 2016
28/05 2016
19/05 2016
18/05 2016
30/04 2016
10/04 2016
05/03 2016