Дебаггер для Yii 1.1 портированный из Yii 2
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Не вижу проблем в том, чтобы открывать ссылки на отладочную инфу в отдельной вкладке.
Делать это по умолчанию - спорный вопрос. Мне, субъективно, никогда не нравилось если страница сама принимает решение делать переход в ту-же вкладку или в отдельную.
Модальное окно - еще один спорный вопрос. Модуль просмотра максимально изолирован от стилей и скриптов фронтэнда, и это не мешает смотреть и post и ajax.
Делать это по умолчанию - спорный вопрос. Мне, субъективно, никогда не нравилось если страница сама принимает решение делать переход в ту-же вкладку или в отдельную.
Модальное окно - еще один спорный вопрос. Модуль просмотра максимально изолирован от стилей и скриптов фронтэнда, и это не мешает смотреть и post и ajax.
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Захотел в Action добавить еще и модуль, если я в нем.
panels/Yii2RequestPanel.php:114
Было
Стало
panels/Yii2RequestPanel.php:114
Было
Код: Выделить всё
$action = get_class($controller) . '::action' . ucfirst($actionID) . '()';
Стало
Код: Выделить всё
$action = ( isset($controller->module->id)?$controller->module->id . ' @ ' : '' ) . get_class($controller) . '::action' . ucfirst($actionID) . '()';
Re: Дебаггер для Yii 1.1 портированный из Yii 2
При использовании вместе с мультиязычностью http://www.yiiframework.com/wiki/294/se ... dget-i18n/ вываливается с ошибкой:
Cannot modify header information - headers already sent by (output started at ...\...\...\core\web\CController.php:793)
...\...\...\core\web\CHttpRequest.php(1187)
Cannot modify header information - headers already sent by (output started at ...\...\...\core\web\CController.php:793)
...\...\...\core\web\CHttpRequest.php(1187)
1175 setcookie($cookie->name,$value,$cookie->expire,$cookie->path,$cookie->domain,$cookie->secure,$cookie->httpOnly);
1176 else
1177 setcookie($cookie->name,$value,$cookie->expire,$cookie->path,$cookie->domain,$cookie->secure);
1178 }
1179
1180 /**
1181 * Deletes a cookie.
1182 * @param CHttpCookie $cookie cookie to be deleted
1183 */
1184 protected function removeCookie($cookie)
1185 {
1186 if(version_compare(PHP_VERSION,'5.2.0','>='))
1187 setcookie($cookie->name,'',0,$cookie->path,$cookie->domain,$cookie->secure,$cookie->httpOnly);
1188 else
1189 setcookie($cookie->name,'',0,$cookie->path,$cookie->domain,$cookie->secure);
1190 }
1191 }
...\...\...\protected\components\Controller.php(42): CMap->offsetSet("language", CHttpCookie)
37 Yii::app()->language = $_GET['language'];
38 Yii::app()->user->setState('language', $_GET['language']);
39 $cookie = new CHttpCookie('language', $_GET['language']);
40 $cookie->expire = time() + (60*60*24*365); // (1 year)
41 #if(!isset(Yii::app()->request->cookies['language']))
42 Yii::app()->request->cookies['language'] = $cookie;
43 }
44 else if (Yii::app()->user->hasState('language'))
45 Yii::app()->language = Yii::app()->user->getState('language');
46 else if(isset(Yii::app()->request->cookies['language']))
47 Yii::app()->language = Yii::app()->request->cookies['language']->value;
Агрегатор цен на услуги хостинга - https://hostcost.net
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Спасибо за отчет. Будет время, попробую воспроизвести.
-
- Сообщения: 9
- Зарегистрирован: 2013.05.07, 12:57
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Спасибо большое! Классная штука!
ps
ps
+1, действительно было бы крутоmixa писал(а):Единственное что не нашел, это подробной информации о view/layout. В YiiDebugToolbar есть такое и достаточно часто используют верстальщики, чтобы найти где верстать.Sam Dark писал(а):По дебаггеру в Yii2 есть пожелания?
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Уже протестировал explain - замечательно, спасибо!
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Спасибо за отзывы.
Что касается explain, сейчас он доступен только для MySQL и SQLite. Подключение к другим СУБД сделать не проблематично, но мне проверить негде.
Если кто использует в своих проектах подключение к PostgreSQL, MS SQL или Oracle, буду благодарен за информацию. Интересуют форматы команд explain для этих СУБД, примеры выдачи, и последующее тестирование. Тикет на github.
Что касается explain, сейчас он доступен только для MySQL и SQLite. Подключение к другим СУБД сделать не проблематично, но мне проверить негде.
Если кто использует в своих проектах подключение к PostgreSQL, MS SQL или Oracle, буду благодарен за информацию. Интересуют форматы команд explain для этих СУБД, примеры выдачи, и последующее тестирование. Тикет на github.
Планирую сделать.Единственное что не нашел, это подробной информации о view/layout
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Дебаггер для Yii 1.1 портированный из Yii 2
KiTE, а можно будет хорошо показавшие себя штуки в виде pull-request-а включить в Yii2?
Нравится Yii? Давайте сделаем его лучше!.
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Да, буду рад помочь.
Но есть проблема, я плохо владею английским, и не смогу нормально задокументировать код. А безграмотно писать не хочется.
Но есть проблема, я плохо владею английским, и не смогу нормально задокументировать код. А безграмотно писать не хочется.
Re: Дебаггер для Yii 1.1 портированный из Yii 2
howard писал(а):При использовании вместе с мультиязычностью http://www.yiiframework.com/wiki/294/se ... dget-i18n/ вываливается с ошибкой:
Cannot modify header information - headers already sent by (output started at ...\...\...\core\web\CController.php:793)
...\...\...\core\web\CHttpRequest.php(1187)
1175 setcookie($cookie->name,$value,$cookie->expire,$cookie->path,$cookie->domain,$cookie->secure,$cookie->httpOnly);
1176 else
1177 setcookie($cookie->name,$value,$cookie->expire,$cookie->path,$cookie->domain,$cookie->secure);
1178 }
1179
1180 /**
1181 * Deletes a cookie.
1182 * @param CHttpCookie $cookie cookie to be deleted
1183 */
1184 protected function removeCookie($cookie)
1185 {
1186 if(version_compare(PHP_VERSION,'5.2.0','>='))
1187 setcookie($cookie->name,'',0,$cookie->path,$cookie->domain,$cookie->secure,$cookie->httpOnly);
1188 else
1189 setcookie($cookie->name,'',0,$cookie->path,$cookie->domain,$cookie->secure);
1190 }
1191 }...\...\...\protected\components\Controller.php(42): CMap->offsetSet("language", CHttpCookie)
37 Yii::app()->language = $_GET['language'];
38 Yii::app()->user->setState('language', $_GET['language']);
39 $cookie = new CHttpCookie('language', $_GET['language']);
40 $cookie->expire = time() + (60*60*24*365); // (1 year)
41 #if(!isset(Yii::app()->request->cookies['language']))
42 Yii::app()->request->cookies['language'] = $cookie;
43 }
44 else if (Yii::app()->user->hasState('language'))
45 Yii::app()->language = Yii::app()->user->getState('language');
46 else if(isset(Yii::app()->request->cookies['language']))
47 Yii::app()->language = Yii::app()->request->cookies['language']->value;
У меня такая же проблема
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Запускается если убрать /ru/ (например) из адресной строки, тогда запускается все
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Благодарю!KiTE писал(а):Пофиксил.
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Нашел еще багу
Обработка запроса идет через errorHandler
Обработка запроса идет через errorHandler
Re: Дебаггер для Yii 1.1 портированный из Yii 2
В PHP < 5.4 с определением http-кода все сложно. Коды начиная с 400-го определяются путем перехвата CHttpExeption. Поэтому, если вы это исключение у себя в проекте экранируете, достоверной информации не будет. В README есть рецепт косвенного определения 302-го кода. Можно "поколдовать" с этой лямбдой в своем конфиге для индивидуальной совместимости с проектом.
Начиная с 5.4 доступна нативная функция http_response_code(), и расширение ее использует.
Начиная с 5.4 доступна нативная функция http_response_code(), и расширение ее использует.
-
- Сообщения: 271
- Зарегистрирован: 2012.11.30, 07:33
Re: Дебаггер для Yii 1.1 портированный из Yii 2
У меня почему-то не работает. Ошибки не вываливает, просто плодит кучу DIV`ов куда вставляются зеркальные копии этой же страницы. Вот так это выглядит:
конфиг:
конфиг:
Код: Выделить всё
<?php
// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');
// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
Yii::setPathOfAlias('bootstrap', dirname(__FILE__).'/../extensions/bootstrap');
return array(
'theme'=>'bootstrap',
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name'=>'MWO [HIVE] Internal ToolKit',
// preloading 'log' component
'preload'=>array(
'log',
'debug',
),
// autoloading model and component classes
'import'=>array(
'application.models.*',
'application.components.*',
),
'modules'=>array(
// uncomment the following to enable the Gii tool
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'server',
// If removed, Gii defaults to localhost only. Edit carefully to taste.
//'ipFilters'=>array('127.0.0.1','::1'),
'generatorPaths'=>array(
'bootstrap.gii',
),
),
),
// application components
'components'=>array(
'debug'=>array(
'class'=>'ext.yii2-debug.Yii2Debug',
'allowedIPs'=>array('127.0.0.1','::1'),
'enabled'=>true,
'highlightCode'=>true,
),
'bootstrap'=>array(
'class'=>'bootstrap.components.Bootstrap',
),
'user'=>array(
// enable cookie-based authentication
'allowAutoLogin'=>true,
),
// uncomment the following to enable URLs in path-format
/*
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
*/
/*
'db'=>array(
'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
),
*/
// uncomment the following to use a MySQL database
'db'=>array(
'connectionString' => 'mysql:host=***;dbname=***',
'emulatePrepare' => true,
'username' => '***',
'password' => '****',
'charset' => 'utf8',
'enableProfiling' => true,
'enableParamLogging' => true,
),
'errorHandler'=>array(
// use 'site/error' action to display errors
'errorAction'=>'site/error',
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning',
),
// uncomment the following to show log messages on web pages
/*array(
'class'=>'CWebLogRoute',
),*/
),
),
),
// application-level parameters that can be accessed
// using Yii::app()->params['paramName']
'params'=>array(
// this is used in contact page
'adminEmail'=>'webmaster@example.com',
),
);
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Похожий вопрос подымался на github. Баг еще не выявлен, проблема не решена.
Автор вопроса пишет что в версии от 2013-09-07 все работало нормально. Попробуйте на своем проекте эту версию.
Если у вас та же ситуация, было бы неплохо, если бы вы попробовали локализовать баг самостоятельно.
Автор вопроса пишет что в версии от 2013-09-07 все работало нормально. Попробуйте на своем проекте эту версию.
Если у вас та же ситуация, было бы неплохо, если бы вы попробовали локализовать баг самостоятельно.
Если будет известна причина, можно будет найти решение.Я бы действовал методом исключения, накатывая и проверяя новые коммиты по очереди. Так станет понятно какое именно изменение стало причиной бага.