Pull to refresh

Comments 46

Спасибо большое за топик.
Достаточно часто приходится воспроизводить часть функционала, предоставляемого этим плагином, какими-то своими наработками. А тут всё что нужно, легко и быстро.
А есть ли что-то подобное, но для «своих» движков. Насколько я знаю, есть модуль к firebug под названием firePHP. А есть ли подобный тулбар?
вырезать не такая проблема ;)
В ZF есть нативная поддержка логгирования в консоль Firebug'а через FirePHP.
Скоро этот тулбар так же станет нативным и будет Zend_Toolbar в вики по нему есть уже кое что.
Стоило бы упомянуть, что изначально такой тулбар был в симфони, откуда был впоследствии адаптироан под кодигнитер и кохану.
Напишите еще, что он не работает при отключенном Zend_View.
Он и при выключенном мониторе не работает ;)
Забавно в зендовом инкубаре тоже есть
Ну я его оттуда примерно и нашел…
а почему авторы разные?
Zend_Toolbar это приведение Scienta ZF Debug к стандартам кодирования ZF. Scienta ZF Debug (ZFDebug) писался одним человеком, в инкубатор переработанную версию положил другой… OpenSource.
классный плагин, только я не могу его включить. подскажите пожалуйста что я делаю неправильно?

впринципе я не так уж много и делал. скачал новую версию ЗФ, закачал куда надо плагин. Далее дописал в бутстрап класс и что теперь?
да, спасибо, я посмотрел. но так и не понял до сих пор.

Нужно для файрфокса какой-то плагин ещё ставить или нет?
Посмотрите, есть ли увас в шаблоне теги и. Просто свой код ZFDebug вставляет между ними и если их нет, то и вставлять не будет.
При включенном ZFDebug у меня отказывается работать плагин Slider из набора jQuery UI =(
code.google.com/p/zfdebug/wiki/Installation
The $options parameter can be either an array or an instance of Zend_Config with the following keys (defaults in paranthesis)
  • z-index: Placement on the z-axis of the html output (255, top)
  • image_path: Path to plugin icons (null, embedded as base64 encoded data)
  • jquery_path: Specify a custom path to the jQuery script. Will only be included if not already part of the page. (http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js)
  • plugins: An array of plugins to show.


Возможно нужно указать собственный jquery_path.
Вот этот коварный код, вставленный плагином, вызывает такое:

var ZFDebugLoad = window.onload;
window.onload = function(){
if (ZFDebugLoad) {
ZFDebugLoad();
}
jQuery.noConflict();
ZFDebugCollapsed();
};


Вся магия в том, что даже если вы где-то дальше в коде явно подключаете jQuery, то при загрузке страницы (window.onload), всё равно будет вызван метод noConflict(), который замаскирует $, и, судя по всему, вызовет ещё какие-то побочные эффекты, препятствующие загрузке плагинов.

Кратчайший путь решения проблемы для тех кто использует jQuery, это явно указать jquery_path и закомментировать строчку с вызовом noConflict():

Файл: ZFDebug/Controller/Plugin/Debug.php
Строка: 426

// jQuery.noConflict();
Помогайте.
Сколько пробовал — не получилось…
Точнее как… сам тулбар работает…


Но вот с БД как сконнектить — не знаю… Всегда говорит что «No adapter». =(
Ты адаптер через ресурс конфигурируешь?
Через application.ini… Я с зендом второй день дружить пытаюсь только…
Ты в конфиге что передаешь сюда?
'Database' => array('adapter' => $db)
Сейчас…

application.ini
;
; Database
;
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.username = "user"
resources.db.params.password = "pass"
resources.db.params.dbname = "database"
resources.db.isDefaultTableAdapter = true


bootstrap.php
/**
* Bootstrap zend debuging for application resources
*/
protected function _initZFDebug()
{
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('ZFDebug');
$options = array(
'plugins' => array('Variables',
'Database' => array('adapter' => $db),
'File',
'Memory',
'Time',
'Registry',
'Exception')
);
$debug = new ZFDebug_Controller_Plugin_Debug($options);
$this->bootstrap('frontController');
$frontController = $this->getResource('frontController');
$frontController->registerPlugin($debug);
}
Получается что переменная $db у меня пустая…
Странно что эксепшн на нее не выдается…

Но в офф вики написанно, что если мы ничего не передадим, то он будет юзать дефолтный адаптер…
Закомментируй строку 'Database' => array('adapter' => $db), или вместо $db укажи Zend_Db_Table::getDefaultAdapter()
Если закомментировать, то палгин просто с тулбара уходит…
Если указывать на Zend_Db_Table::getDefaultAdapter(), то всеравно пишет что нет адаптера… =/
//class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
$resource = $this->getPluginResource('db');
$db = $resource->getDbAdapter();
$options = array(
  'plugins' => array('Variables',
    'Database' => array('adapter' => $db),
  )
);


* This source code was highlighted with Source Code Highlighter.


;============================================================================== ;DATABASE (application.ini)
;==============================================================================
resources.db.adapter       = "Pdo_Mysql"
resources.db.params.host     = "localhost"
resources.db.params.port     = 3306
resources.db.params.username     = "***"
resources.db.params.password     = "***"
resources.db.params.dbname     = "***"
resources.db.isDefaultTableAdapter  = true
resources.db.profiler.enabled    = true
resources.db.profiler.class     = "Zend_Db_Profiler_Firebug"
resources.db.caseFolding       = true
resources.db.autoQuoteIdentifiers     = true
resources.db.allowSerialization     = true
resources.db.autoReconnectOnUnserialize  = true
resources.db.adapterNamespace    = "Zend_Db_Adapter"
resources.db.driver_options.1002    = "SET NAMES UTF8"


* This source code was highlighted with Source Code Highlighter.
Огромное спасибо! Все работает! Плюс Вам в карму!
Спасибо!

Кстати, недавно обнаружил, что для ресурса базы данных теперь можно писать в конфиге:

resources.db.params.charset = "utf8"

вместо непосредственного указания запроса, как у вас

resources.db.driver_options.1002 = "SET NAMES UTF8"
Оказывается да, для адаптеров:
Zend_Db_Adapter_Mysqli
Zend_Db_Adapter_Oracle
Zend_Db_Adapter_Pdo_Mysql
Zend_Db_Adapter_Pdo_Oci
Zend_Db_Adapter_Pdo_Pgsql
отличная штука, поставил себе и написал автору плагина issue по поводу отключенного зендовского представления

Вопрос: не могли бы ва подробнее рассказать о 'Cache' => array('backend' => $cache->getBackend()),
application.ini:
resources.frontController.plugins.XXX = «XXX_Controller_Plugin»

class XXX_Controller_Plugin extends Zend_Controller_Plugin_Abstract
{
  public function preDispatch(Zend_Controller_Request_Abstract $request)
  {
    global $application;

    $bootstrap = $application->getBootstrap();

    $frontendOptions = array(
      'automatic_serialization' => true
      );

    $backendOptions = array(
      'cache_dir'        => APPLICATION_PATH . DIRECTORY_SEPARATOR . 'cache'
      );

    $cache = Zend_Cache::factory(
      'Core',
      'File',
      $frontendOptions,
      $backendOptions
    );

    if ($bootstrap->hasResource('ZFDebug')) {

      $frontController = Zend_Controller_Front::getInstance();
      $zfDebug = $frontController->getPlugin('ZFDebug_Controller_Plugin_Debug');

      $cachePlugin = new ZFDebug_Controller_Plugin_Debug_Plugin_Cache(array('backend' => $cache->getBackend()));
      $zfDebug->registerPlugin($cachePlugin);
    }

    // Next, set the cache to be used with all table objects
    Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);
  }
}


* This source code was highlighted with Source Code Highlighter.
Попробовал сегодня панель — понравилось, написал тоже заметку, (7 скринов)
zendframework.ru/articles/zfdebug-panel-for-debugging

Там еще есть плагин Auth, но он у меня не подключился, походу не доделан.
И в 6-7 ие base64 картинки не пашут :)
Там видимо автор ошибся… надо сделать фикс, добавить этот плагин в список иначе он будет подключаться через назад, а там его соответственно не лежит.

// ZFDebug/Controller/Plugin/Debug.php line 62
public static $standardPlugins = array('Auth' /* ... */);


* This source code was highlighted with Source Code Highlighter.


P. S.
Насчет памяти… 5 метров для «Hello World» как-то помоему это дофига… нужно пробовать что-то с кешированием классов.

P. P. S.
Zend Framework уже есть 1.8.3
Насчет картинок… а в восьмом?
А восьмого у меня нет :) Про этот баг есть issue у них.
Sign up to leave a comment.

Articles