ZendFramework BjyProfiler + SQLite3

VEV

IT-шник
Еще одна трабла:
пока делаю прототип - чтобы не заморачиваться с БД использую SQLite (медленно, зато без геморроя).

Однако, в модуле BjyProfiler нет описания работы с нативным драйвером sqlite, а используя Pdo (который по умолчанию) - в панельке информация никакая не показывается.

Конфиг модуля:
PHP:
$dbParams = array(
  'path'=> __DIR__ . '/../../data/sqlite3.db',
);

return array(
  'service_manager' => array(
  'factories' => array(
  'Zend\Db\Adapter\Adapter' => function ($sm) use ($dbParams) {
  $adapter = new BjyProfiler\Db\Adapter\ProfilingAdapter(array(
  'driver'  => 'pdo',
  'dsn'  => 'sqlite:'.$dbParams['path'],
  ));
....
Есть у кого идея, как настроить?
 

WMix

герр M:)ller
Партнер клуба
не уверен но думаю так
Код:
return new BjyProfiler\Db\Adapter\ProfilingAdapter(array(
'driver' => 'Pdo_Sqlite',
'database' => 'path/to/sqlite.db'
))
 

VEV

IT-шник
Чет я немного подтупливаю... :(
Если я напрямую использую Zend\Db\Adapter\Adapter - модуль работает. Использую доктрину - модуль молчит. Он в принципе может профилировать запросы доктрины?
 

WMix

герр M:)ller
Партнер клуба
тут важный вопрос, а какой адаптер использует доктрина? добавь этот профайлер в драйвер доктрины
 
Последнее редактирование:

VEV

IT-шник
У докртины все стандартно...
PHP:
    'driver' => array(
       'my_application_driver' => array(
         'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
         'cache' => 'array',
         'paths' => array(
           __DIR__ . '/../src/Application/Entity',
     ),
  ),

  'orm_default' => array(
     'drivers' => array(
      'Application\Entity' => 'my_application_driver'
     )
    )
   )
  ),
PHP:
'doctrine' => array(
  'connection' => array(
     'orm_default' => array(
        'driverClass' => 'Doctrine\DBAL\Driver\PDOSqlite\Driver',
        'params' => array(
           'path'=> __DIR__ . '/../../data/sqlite3.db',
        )
      )
    )
  ),
Все по мануалу.

Есть еще вот такая-вот статейка (https://github.com/doctrine/DoctrineORMModule/blob/master/docs/developer-tools.md), но при задании настроек профайлера для ZDT вылетает исключение.
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
а ты просто один к одному мой ответ скопировал, или отконфигурировал как по ману?
 

VEV

IT-шник
И впритык скопировал. И по ману попробовал. И посмотрел, как параметры зендовский Adapter парсит. Все норм должно быть... Ан нет...
 

WMix

герр M:)ller
Партнер клуба
тотже логгер добавь, который настроил в адаптере
PHP:
'doctrine' => array(
    'sql_logger_collector' => array(
        'orm_default' => array(
            'sql_logger' => 'тут',
        ),
    ),
    'connection' => array(
    //...
    ),
),
 

VEV

IT-шник
тотже логгер добавь, который настроил в адаптере
Можешь показать на пальцах. Доктрина что-то внутри себя мутит, просто левый логгер подключить не получается. Во вложении конфиги.. Буду очень признателен.
 

Вложения

WMix

герр M:)ller
Партнер клуба
приблизительно так
PHP:
 array(
    'service_manager' => array(
        'factories' => array(
            'My\Logger' => function ($sm){
                return new Zend\Log\Logger(array(
                    'writers' => array(
                        'stream' => array(
                            'name' => 'stream',
                                'options' => array(
                                    'stream' => 'php://output'
                                )
                            )
                        )
                    )
                );
            },
        )
    ),
    'doctrine' => array(
        'sql_logger_collector' => array(
           'orm_default' => array(
               'sql_logger' => 'My\Logger',
           ),
        ),
        'connection' => array(
        //...
        ),
    ),
)
 

VEV

IT-шник
В общем, в такой конфигурации не работает. Doctrina хочет, чтобы логгер был наследником Doctrine\DBAL\SQLLogger, а если что-то подобное ей даешь - начинает материться на кэш доктрины (который в каталоге data проекта).

К тому же, у меня складывается ощущение, что это скорее операции с Zend\Db будут отображаться вместе с операциями Doctrina, а не наоборот. То, как представляет профилирование BjyProfiler нравится мне немножко больше :)
В общем, вопрос пока открыт...
 

WMix

герр M:)ller
Партнер клуба
Сверху