예제 #1
0
<?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);
예제 #2
0
 /**
  * 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);
 }