Zend debugger и Pear не дружат

Rusmikle

Новичок
Zend debugger и Pear не дружат

при попытке отладки скрипта использующего Pear (в моём случае с Pear DB) в Zend debugger прекращает отладку вываливая кучу ошибок в Pear коде.
примеры ошибок:

Первая ошибка:

код строки такой @$obj =& new $classname;
Debug Strict (PHP 5): C:/Programme/xampp/php/PEAR/DB.php line 470 - Assigning the return value of new by reference is deprecated

далее множество таких же ошибок
напр.
Debug Strict (PHP 5): C:/Programme/xampp/php/PEAR/DB.php line 1202 - Assigning the return value of new by reference is deprecated
код строки такой $arr = &new $object_class($arr);

и в итоге уже в моём скрипте такая ошибка (видимо как следствие ошибок в Pear)
Debug Strict (PHP 5): php_upload/db/db_con.html line 5 - Non-static method DB::connect() should not be called statically
соотв.:
require_once('DB.php');
$db = DB::connect("mysql://root:mad:localhost/caja_base", array('debug' => 1, 'optimize' => 'portability'));

и.т.п.
где грабли и как с ними бороться, не хотелось бы отказывать себе в отладке :(
без отладчика все работает без ошибок

PHP Version 5.2.3
Zend как Plugin к eclipse zend.php.debug.debugger_5.2.10.v20070905
 

voituk

прозревший
PEAR::DB написан с поддержкой PHP4
Скорее всего надо настроить отладчик чтоб он игнорировал ошибки связанные с обратной совместимостью
 

voituk

прозревший
ustas
Может оно и лучше, но об этом речь и идет.
Вопрос был про PEAR:DB а не про PDO
 

Rusmikle

Новичок
Автор оригинала: tf
Rusmikle, изучай синтаксис php5

первая строка с гавнокодом
PHP FAQ: Ничего не работает! Что делать???
да оно то понятно, но код то не мой :( и трогать его нельзя
проблемма лечится переключением в отладчике на php4 благо ничего специфичного в проекте от 5 ки нет
непонятно только как люди борются с этим в проектах где возможности 5ки используются?
Надо поискать, может есть версия Pear уже заточенная под 5ку, оно ведь только для отладчика надо, у провайдера пусть стоит какая угодно.
А перейти на dbo в данный момент не получится, если только написать в нем Pear эмулятор. Проект начат не мной и уже имеет тонны кода,
не хочется перелопачивать всё что уже работает только ради отладки. А в своих проектах я пользую только свои наработки ибо уверен что ничего быстрого,качественного и одновременно универсального не бывает.

-~{}~ 24.09.07 12:23:

кстати в догонку вот нашел инфу про Pear заточенный под php5 http://phpclub.ru/talk/showthread.php?s=&postid=650544

-~{}~ 24.09.07 12:36:

для прикола скачал и поставил Pear DB 1.7.13 (stable) released on 2007-09-21. Та же песня. Они походу проголосовать то проголосовали за совместимость с 5кой но релизы лепят по старому :(
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Rusmikle
для прикола скачал и поставил Pear DB 1.7.13 (stable) released on 2007-09-21. Та же песня. Они походу проголосовать то проголосовали за совместимость с 5кой но релизы лепят по старому :(
Разуй глазыньки, речь шла о новых пакетах, старые естественно будут сохранять поддержку PHP4, а то найдут там страшный баг и пользователи, зависшие на PHP4, исправления поставить не смогут.

А PEAR DB лучше вообще не использовать, он уже давно deprecated, при этом PDO даёт практически те же возможности.
 

Rusmikle

Новичок
Автор оригинала: Sad Spirit
Разуй глазыньки, речь шла о новых пакетах, старые естественно будут сохранять поддержку PHP4, а то найдут там страшный баг и пользователи, зависшие на PHP4, исправления поставить не смогут.

А PEAR DB лучше вообще не использовать, он уже давно deprecated, при этом PDO даёт практически те же возможности.
Ну а почему новыми не могут быть новые версии старых?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Rusmikle
Ну а почему новыми не могут быть новые версии старых?
Потому что нужно соблюдать обратную совместимость.
 

Rusmikle

Новичок
Автор оригинала: Sad Spirit
Потому что нужно соблюдать обратную совместимость.
а до каких пор надо бороться за обратную совместимость в ущерб функциональности? 5ка уже 3 года как существует ...
 

cDLEON

Онанист РНРСlub
Rusmikle
А мне пофиг, что она 3 года существует.
Если я считаю строки "static","private" в классах бесполезными, то зачем их использывать? Зачем мне этот мусор в моём коде?
Какие плюсы он мне даёт?
В общем пока не обрубят эту совместимость, даже не подумаю переходить. Лучше б нэймспэйсы добавили....А не этот бред.
 

Rusmikle

Новичок
а мне, так, множественного наследования не хватает :( , апосля С++ уж больно обрезанная объектность ...
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Rusmikle
а до каких пор надо бороться за обратную совместимость в ущерб функциональности? 5ка уже 3 года как существует ...
Пока не будет выпущена версия 2.0 пакета DB, требуется сохранять обратную совместимость (это включает в т.ч. и работу под PHP4). А помянутая вряд ли будет выпущена, т.к. должна быть под PHP5, в то время как в PHP5 уже есть PDO.
 

voituk

прозревший
а мне, так, множественного наследования не хватает , апосля С++ уж больно обрезанная объектность ...
Тебе книги по шаблонам проектирования не хватает :)
IMHO уже лет так 5 известно что множественное наследование - это зло.
 

cDLEON

Онанист РНРСlub
tf
а ты поставь error_reporting(E_ALL), а не error_reporting(E_ALL & E_STRICT);
 

berkut

Новичок
Rusmikle святъ. напиши книгу по ооп, поставь на колени толпы этих недоумков, годами идущих не в том направлении;)
 

korchasa

LIMB infected
Автор оригинала: cDLEON
Rusmikle
А мне пофиг, что она 3 года существует.
Если я считаю строки "static","private" в классах бесполезными, то зачем их использывать? Зачем мне этот мусор в моём коде?
Какие плюсы он мне даёт?
В общем пока не обрубят эту совместимость, даже не подумаю переходить. Лучше б нэймспэйсы добавили....А не этот бред.
'static' - вы все синглтоны через стороннюю factory строите? Прикольная из нее получилась помойка чужих функционалов :)
'private' - ага, потом ооочень приятно копаться в таком коде, где программист себя не ограничивает, и вызывает что угодно откуда угодно. Спасибо, насмотрелись. :mad:
 
Сверху