diff --git a/src/Dibi/Bridges/Nette/DibiExtension21.php b/src/Dibi/Bridges/Nette/DibiExtension21.php deleted file mode 100644 index f74ae23a..00000000 --- a/src/Dibi/Bridges/Nette/DibiExtension21.php +++ /dev/null @@ -1,52 +0,0 @@ -getContainerBuilder(); - $config = $this->getConfig(); - - $useProfiler = isset($config['profiler']) - ? $config['profiler'] - : $container->parameters['debugMode']; - - unset($config['profiler']); - - if (isset($config['flags'])) { - $flags = 0; - foreach ((array) $config['flags'] as $flag) { - $flags |= constant($flag); - } - $config['flags'] = $flags; - } - - $connection = $container->addDefinition($this->prefix('connection')) - ->setClass('Dibi\Connection', [$config]) - ->setAutowired(isset($config['autowired']) ? $config['autowired'] : TRUE); - - if ($useProfiler) { - $panel = $container->addDefinition($this->prefix('panel')) - ->setClass('Dibi\Bridges\Nette\Panel') - ->addSetup('Nette\Diagnostics\Debugger::getBar()->addPanel(?)', ['@self']) - ->addSetup('Nette\Diagnostics\Debugger::getBlueScreen()->addPanel(?)', ['Dibi\Bridges\Nette\Panel::renderException']); - - $connection->addSetup('$service->onEvent[] = ?', [[$panel, 'logEvent']]); - } - } - -} diff --git a/src/Dibi/Bridges/Nette/Panel.php b/src/Dibi/Bridges/Nette/Panel.php deleted file mode 100644 index cc7e439f..00000000 --- a/src/Dibi/Bridges/Nette/Panel.php +++ /dev/null @@ -1,153 +0,0 @@ -filter = $filter ? (int) $filter : Event::QUERY; - $this->explain = $explain; - } - - - public function register(Dibi\Connection $connection) - { - Debugger::getBar()->addPanel($this); - Debugger::getBlueScreen()->addPanel([__CLASS__, 'renderException']); - $connection->onEvent[] = [$this, 'logEvent']; - } - - - /** - * After event notification. - * @return void - */ - public function logEvent(Event $event) - { - if (($event->type & $this->filter) === 0) { - return; - } - $this->events[] = $event; - } - - - /** - * Returns blue-screen custom tab. - * @return mixed - */ - public static function renderException($e) - { - if ($e instanceof Dibi\Exception && $e->getSql()) { - return [ - 'tab' => 'SQL', - 'panel' => Helpers::dump($e->getSql(), TRUE), - ]; - } - } - - - /** - * Returns HTML code for custom tab. (Nette\Diagnostics\IBarPanel) - * @return mixed - */ - public function getTab() - { - $totalTime = 0; - foreach ($this->events as $event) { - $totalTime += $event->time; - } - return '' - . count($this->events) . ' queries' - . ($totalTime ? sprintf(' / %0.1f ms', $totalTime * 1000) : '') - . ''; - } - - - /** - * Returns HTML code for custom panel. (Nette\Diagnostics\IBarPanel) - * @return mixed - */ - public function getPanel() - { - $totalTime = $s = NULL; - $h = 'htmlSpecialChars'; - foreach ($this->events as $event) { - $totalTime += $event->time; - $explain = NULL; // EXPLAIN is called here to work SELECT FOUND_ROWS() - if ($this->explain && $event->type === Event::SELECT) { - try { - $backup = [$event->connection->onEvent, \dibi::$numOfQueries, \dibi::$totalTime]; - $event->connection->onEvent = NULL; - $cmd = is_string($this->explain) ? $this->explain : ($event->connection->getConfig('driver') === 'oracle' ? 'EXPLAIN PLAN FOR' : 'EXPLAIN'); - $explain = Helpers::dump($event->connection->nativeQuery("$cmd $event->sql"), TRUE); - } catch (Dibi\Exception $e) { - } - list($event->connection->onEvent, \dibi::$numOfQueries, \dibi::$totalTime) = $backup; - } - - $s .= '' . sprintf('%0.3f', $event->time * 1000); - if ($explain) { - static $counter; - $counter++; - $s .= "
explain"; - } - - $s .= '' . Helpers::dump(strlen($event->sql) > self::$maxLength ? substr($event->sql, 0, self::$maxLength) . '...' : $event->sql, TRUE); - if ($explain) { - $s .= "
{$explain}
"; - } - if ($event->source) { - $helpers = 'Nette\Diagnostics\Helpers'; - if (!class_exists($helpers)) { - $helpers = class_exists('NDebugHelpers') ? 'NDebugHelpers' : 'DebugHelpers'; - } - $s .= call_user_func([$helpers, 'editorLink'], $event->source[0], $event->source[1])->class('nette-DibiProfiler-source'); - } - - $s .= "{$event->count}{$h($event->connection->getConfig('driver') . '/' . $event->connection->getConfig('name'))}"; - } - - return empty($this->events) ? '' : - ' -

Queries: ' . count($this->events) . ($totalTime === NULL ? '' : sprintf(', time: %0.3f ms', $totalTime * 1000)) . '

-
- - ' . $s . ' -
Time msSQL StatementRowsConnection
-
'; - } - -} diff --git a/src/Dibi/Bridges/Nette/config.sample.neon b/src/Dibi/Bridges/Nette/config.sample.neon index 2af2fdf9..f336b711 100644 --- a/src/Dibi/Bridges/Nette/config.sample.neon +++ b/src/Dibi/Bridges/Nette/config.sample.neon @@ -1,5 +1,5 @@ # This will create service named 'dibi.connection'. -# Requires Nette Framework 2.2 +# Requires Nette Framework 2.2 or later extensions: dibi: Dibi\Bridges\Nette\DibiExtension22 diff --git a/src/Dibi/Connection.php b/src/Dibi/Connection.php index 22869ca6..4e89e098 100644 --- a/src/Dibi/Connection.php +++ b/src/Dibi/Connection.php @@ -111,11 +111,6 @@ class Connection if (Loggers\FirePhpLogger::isAvailable()) { $this->onEvent[] = [new Loggers\FirePhpLogger($filter), 'logEvent']; } - - if (!interface_exists('Tracy\IBarPanel') && interface_exists('Nette\Diagnostics\IBarPanel') && class_exists('Dibi\Bridges\Nette\Panel')) { - $panel = new Bridges\Nette\Panel(isset($profilerCfg['explain']) ? $profilerCfg['explain'] : TRUE, $filter); - $panel->register($this); - } } $this->substitutes = new HashMap(function ($expr) { return ":$expr:"; }); diff --git a/src/loader.php b/src/loader.php index 71aa55df..7f7bbbb1 100644 --- a/src/loader.php +++ b/src/loader.php @@ -15,8 +15,6 @@ spl_autoload_register(function ($class) { static $map = [ 'dibi' => 'dibi.php', 'Dibi\Bridges\Nette\DibiExtension22' => 'Bridges/Nette/DibiExtension22.php', - 'Dibi\Bridges\Nette\DibiExtension21' => 'Bridges/Nette/DibiExtension21.php', - 'Dibi\Bridges\Nette\Panel' => 'Bridges/Nette/Panel.php', 'Dibi\Bridges\Tracy\Panel' => 'Bridges/Tracy/Panel.php', 'Dibi\Connection' => 'Connection.php', 'Dibi\DataSource' => 'DataSource.php', @@ -91,8 +89,6 @@ spl_autoload_register(function ($class) { 'DibiMySqlDriver' => 'Dibi\Drivers\MySqlDriver', 'DibiMySqliDriver' => 'Dibi\Drivers\MySqliDriver', 'DibiMySqlReflector' => 'Dibi\Drivers\MySqlReflector', - 'DibiNette21Extension' => 'Dibi\Bridges\Nette\DibiExtension21', - 'DibiNettePanel' => 'Dibi\Bridges\Nette\Panel', 'DibiNotImplementedException' => 'Dibi\NotImplementedException', 'DibiNotSupportedException' => 'Dibi\NotSupportedException', 'DibiOdbcDriver' => 'Dibi\Drivers\OdbcDriver',