Nowości w ZFDataGrid 0.8 czyli Events (Zdarzenia)

Najnowsza wersja wspaniałego dodatku do Zend Framework oznaczona jest numerem 0.8. W nowej wersji, która ujrzała światło dzienne 10 listopada, oprócz usunięcia wielu bugów oraz drobnych zmian w metodologii stosowania, pojawiła się obługa Zdarzeń (Events).

Zdarzenia to mechanizm umożliwiający podpięcie własnego kodu, który będzie wywoływany, gdy zachodzi określone zdarzenie – zostanie wywołana określona operacja. Aby podpiąć naszą funkcję do grida, stosujemy wywołanie o poniższej składni:

$oGrid->listenEvent( 'crud.before_update', $callback );

lub, gdy chcemy dodatko przekazać argumenty:

$oGrid->listenEvent( 'crud.before_update', $callback, array('key'=>'value') );

lub, gdy chcemy wskazać kolejność wywoływania funkcji przy danym zdarzeniu:

$oGrid->listenEvent( 'crud.before_update', $callback, array('key'=>'value'), $priority = 10 );

Argument $callback to oczywiście wkazanie na naszą funkcję, która będzie wywoływana w odpowiedzi na zdarzenie. Jest ona poniższej postaci.

function My_Callback(Bvb_Grid_Event $event) {
   $params = $event->getParams();
   $param = $event->getParam(?my_param?);
   $name = $event->getName();
   $object = $event->getObject();
   $event->setParam($param);
}

W powyższym przykładzie, pokazane jest, jak uzyskać dostęp do wspomnianych wyżej przekazanych argumentów oraz do innych parametrów, takich jak nazwa zdarzenia itp.

Lista wszystkich zdarzeń oraz dodatkowe opcje dla Zdarzeń opisane są w Manualu dla najnowszej wersji, dostępnym pod TUTAJ.