<?php //Create an event manager $eventsManager = new Phalcon\Events\Manager(); //Attach a listener for type "acl" $eventsManager->attach("acl", function ($event, $acl) { if ($event->getType() == 'beforeCheckAccess') { echo $acl->getActiveRole(), $acl->getActiveResource(), $acl->getActiveAccess(); } }); $acl = new \Phalcon\Acl\Adapter\Memory(); //Setup the $acl //... //Bind the eventsManager to the acl component $acl->setEventsManager($eventManagers);
/** * Adapter::setEventsManager parameter validation */ public function testAdapterEventsManagerParameter() { $adapter = new Phalcon\Acl\Adapter\Memory(); $exceptions = 0; //string try { $adapter->setEventsManager('test'); } catch (Phalcon\Acl\Exception $e) { $exceptions++; } //int try { $adapter->setEventsManager(123); } catch (Phalcon\Acl\Exception $e) { $exceptions++; } //double try { $adapter->setEventsManager(123.456); } catch (Phalcon\Acl\Exception $e) { $exceptions++; } //array try { $adapter->setEventsManager(array('test')); } catch (Phalcon\Acl\Exception $e) { $exceptions++; } //empty array try { $adapter->setEventsManager(array()); } catch (Phalcon\Acl\Exception $e) { $exceptions++; } //wrong object try { $adapter->setEventsManager(new \stdClass()); } catch (Phalcon\Acl\Exception $e) { $exceptions++; } //null try { $adapter->setEventsManager(null); } catch (Phalcon\Acl\Exception $e) { $exceptions++; } //boolean try { $adapter->setEventsManager(false); } catch (Phalcon\Acl\Exception $e) { $exceptions++; } $this->assertEquals($exceptions, 8); }