/** * @param \Zend\EventManager\SharedEventManagerInterface $e */ public function attachShared(\Zend\EventManager\SharedEventManagerInterface $e) { if ($this->getServiceLocator()->has('zf2datatable_logger')) { $logger = $this->getServiceLocator()->get('zf2datatable_logger'); $adapter = $this->getServiceLocator()->get('zf2datatable_adapter'); $services = $this->getServiceLocator(); // tablegateway datasource $this->listeners[] = $e->attach('Zend\\Db\\TableGateway\\TableGateway', 'preSelect', function ($e) use($logger, $adapter) { $p = $e->getParams(); $platform = $adapter->getPlatform(); if ($p['select'] instanceof \Zend\Db\Sql\Select) { $logger->info(' sql=' . $p['select']->getSqlString($platform)); } }, 100); $this->listeners[] = $e->attach('Zend\\Db\\TableGateway\\TableGateway', 'preInsert', function ($e) use($logger, $adapter) { $p = $e->getParams(); $platform = $adapter->getPlatform(); if ($p['insert'] instanceof \Zend\Db\Sql\Insert) { $logger->info(' sql=' . $p['insert']->getSqlString($platform)); // echo ' sql='.$p['insert']->getSqlString($platform); } }, 100); $this->listeners[] = $e->attach('Zend\\Db\\TableGateway\\TableGateway', 'preUpdate', function ($e) use($logger, $adapter) { $p = $e->getParams(); $platform = $adapter->getPlatform(); if ($p['update'] instanceof \Zend\Db\Sql\Update) { $logger->info(' sql=' . $p['update']->getSqlString($platform)); } }, 100); $this->listeners[] = $e->attach('Zend\\Db\\TableGateway\\TableGateway', 'preDelete', function ($e) use($logger, $adapter) { $p = $e->getParams(); $platform = $adapter->getPlatform(); if ($p['delete'] instanceof \Zend\Db\Sql\Delete) { $logger->info(' sql=' . $p['delete']->getSqlString($platform)); } }, 100); // abstract datasource $this->listeners[] = $e->attach(array('Zf2datatable\\DataSource\\AbstractDataSource'), 'pre.update', function ($event) use($services) { $target = $event->getTarget(); $params = $event->getParams(); // to do return $params; }); $this->listeners[] = $e->attach(array('Zf2datatable\\DataSource\\AbstractDataSource'), 'post.update', function ($event) use($services) { $target = $event->getTarget(); $params = $event->getParams(); // to do return $params; }); $this->listeners[] = $e->attach(array('Zf2datatable\\DataSource\\AbstractDataSource'), 'pre.insert', function ($event) use($services) { $target = $event->getTarget(); $params = $event->getParams(); // to do return $params; }); $this->listeners[] = $e->attach(array('Zf2datatable\\DataSource\\AbstractDataSource'), 'post.insert', function ($event) use($services) { $target = $event->getTarget(); $params = $event->getParams(); // to do return $params; }); } }