- <?php
- /**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
-
- namespace Zend\Db\TableGateway\Feature;
-
- use Zend\Db\Adapter\Driver\ResultInterface;
- use Zend\Db\Adapter\Driver\StatementInterface;
- use Zend\Db\ResultSet\ResultSetInterface;
- use Zend\Db\Sql\Delete;
- use Zend\Db\Sql\Insert;
- use Zend\Db\Sql\Select;
- use Zend\Db\Sql\Update;
- use Zend\EventManager\EventManager;
- use Zend\EventManager\EventManagerInterface;
- use Zend\EventManager\EventsCapableInterface;
-
- class EventFeature extends AbstractFeature implements EventsCapableInterface
- {
- /**
- * @var EventManagerInterface
- */
- protected $eventManager = null;
-
- /**
- * @var null
- */
- protected $event = null;
-
- /**
- * @param EventManagerInterface $eventManager
- * @param EventFeature\TableGatewayEvent $tableGatewayEvent
- */
- public function __construct(
- EventManagerInterface $eventManager = null,
- EventFeature\TableGatewayEvent $tableGatewayEvent = null
- ) {
- $this->eventManager = ($eventManager instanceof EventManagerInterface)
- ? $eventManager
- : new EventManager;
-
- $this->eventManager->addIdentifiers(array(
- 'Zend\Db\TableGateway\TableGateway',
- ));
-
- $this->event = ($tableGatewayEvent) ?: new EventFeature\TableGatewayEvent();
- }
-
- /**
- * Retrieve composed event manager instance
- *
- * @return EventManagerInterface
- */
- public function getEventManager()
- {
- return $this->eventManager;
- }
-
- /**
- * Retrieve composed event instance
- *
- * @return EventFeature\TableGatewayEvent
- */
- public function getEvent()
- {
- return $this->event;
- }
-
- /**
- * Initialize feature and trigger "preInitialize" event
- *
- * Ensures that the composed TableGateway has identifiers based on the
- * class name, and that the event target is set to the TableGateway
- * instance. It then triggers the "preInitialize" event.
- *
- * @return void
- */
- public function preInitialize()
- {
- if (get_class($this->tableGateway) != 'Zend\Db\TableGateway\TableGateway') {
- $this->eventManager->addIdentifiers(get_class($this->tableGateway));
- }
-
- $this->event->setTarget($this->tableGateway);
- $this->event->setName(__FUNCTION__);
- $this->eventManager->trigger($this->event);
- }
-
- /**
- * Trigger the "postInitialize" event
- *
- * @return void
- */
- public function postInitialize()
- {
- $this->event->setName(__FUNCTION__);
- $this->eventManager->trigger($this->event);
- }
-
- /**
- * Trigger the "preSelect" event
- *
- * Triggers the "preSelect" event mapping the following parameters:
- * - $select as "select"
- *
- * @param Select $select
- * @return void
- */
- public function preSelect(Select $select)
- {
- $this->event->setName(__FUNCTION__);
- $this->event->setParams(array('select' => $select));
- $this->eventManager->trigger($this->event);
- }
-
- /**
- * Trigger the "postSelect" event
- *
- * Triggers the "postSelect" event mapping the following parameters:
- * - $statement as "statement"
- * - $result as "result"
- * - $resultSet as "result_set"
- *
- * @param StatementInterface $statement
- * @param ResultInterface $result
- * @param ResultSetInterface $resultSet
- * @return void
- */
- public function postSelect(StatementInterface $statement, ResultInterface $result, ResultSetInterface $resultSet)
- {
- $this->event->setName(__FUNCTION__);
- $this->event->setParams(array(
- 'statement' => $statement,
- 'result' => $result,
- 'result_set' => $resultSet
- ));
- $this->eventManager->trigger($this->event);
- }
-
- /**
- * Trigger the "preInsert" event
- *
- * Triggers the "preInsert" event mapping the following parameters:
- * - $insert as "insert"
- *
- * @param Insert $insert
- * @return void
- */
- public function preInsert(Insert $insert)
- {
- $this->event->setName(__FUNCTION__);
- $this->event->setParams(array('insert' => $insert));
- $this->eventManager->trigger($this->event);
- }
-
- /**
- * Trigger the "postInsert" event
- *
- * Triggers the "postInsert" event mapping the following parameters:
- * - $statement as "statement"
- * - $result as "result"
- *
- * @param StatementInterface $statement
- * @param ResultInterface $result
- * @return void
- */
- public function postInsert(StatementInterface $statement, ResultInterface $result)
- {
- $this->event->setName(__FUNCTION__);
- $this->event->setParams(array(
- 'statement' => $statement,
- 'result' => $result,
- ));
- $this->eventManager->trigger($this->event);
- }
-
- /**
- * Trigger the "preUpdate" event
- *
- * Triggers the "preUpdate" event mapping the following parameters:
- * - $update as "update"
- *
- * @param Update $update
- * @return void
- */
- public function preUpdate(Update $update)
- {
- $this->event->setName(__FUNCTION__);
- $this->event->setParams(array('update' => $update));
- $this->eventManager->trigger($this->event);
- }
-
- /**
- * Trigger the "postUpdate" event
- *
- * Triggers the "postUpdate" event mapping the following parameters:
- * - $statement as "statement"
- * - $result as "result"
- *
- * @param StatementInterface $statement
- * @param ResultInterface $result
- * @return void
- */
- public function postUpdate(StatementInterface $statement, ResultInterface $result)
- {
- $this->event->setName(__FUNCTION__);
- $this->event->setParams(array(
- 'statement' => $statement,
- 'result' => $result,
- ));
- $this->eventManager->trigger($this->event);
- }
-
- /**
- * Trigger the "preDelete" event
- *
- * Triggers the "preDelete" event mapping the following parameters:
- * - $delete as "delete"
- *
- * @param Delete $delete
- * @return void
- */
- public function preDelete(Delete $delete)
- {
- $this->event->setName(__FUNCTION__);
- $this->event->setParams(array('delete' => $delete));
- $this->eventManager->trigger($this->event);
- }
-
- /**
- * Trigger the "postDelete" event
- *
- * Triggers the "postDelete" event mapping the following parameters:
- * - $statement as "statement"
- * - $result as "result"
- *
- * @param StatementInterface $statement
- * @param ResultInterface $result
- * @return void
- */
- public function postDelete(StatementInterface $statement, ResultInterface $result)
- {
- $this->event->setName(__FUNCTION__);
- $this->event->setParams(array(
- 'statement' => $statement,
- 'result' => $result,
- ));
- $this->eventManager->trigger($this->event);
- }
- }
# |
Change |
User |
Description |
Committed |
|
#1
|
18334 |
Liz Lam |
initial add of jambox |
9 years ago
|
|