Покинул форум
Сообщений всего: 126
Дата рег-ции: Июль 2011
Помог: 3 раз(а)
Имеется произвольный класс. Наследован от класса который должен вызывать методы - "ДО" вызова методов класса наследника. При этом класс наследник не вызывает(не знает) о методах родителя.
При этом использование parent:: и self::, не возможно, чтоб не писать код , который придется удалять после отладки.
Единственная мысль парсинг самого скрипта, возможно есть какая альтернатива?
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
А если по делу - опишите задачу, не ваш вариант решения, а первоначальную задачу, которую нужно решить
DeertOff
Отправлено: 03 Декабря, 2013 - 08:28:27
Гость
Покинул форум
Сообщений всего: 126
Дата рег-ции: Июль 2011
Помог: 3 раз(а)
Всё просто есть "разработчик PHP", которому нужно отладить своё приложение(классы). Собственно возможность отладки , Без изменения кода (возможно наследование), от класса отладки.
Цитата:
Что мешает решить в конструкторе?
Ощущение попытки чистки зубов через задний проход.
В конструкторе я не знаю о "Будущем" классе и его методах (Во время создания своего объекта).
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Если для отладки у вас используются "измененные" классы - вы не можете гарантировать одинаковость работы Используйте log4php или что-нибудь в этом духе и не мучайтесь. Есть сообщения разного уровня детализированности, есть дебаг-режим, в котором все сообщения всех уровней детализации выводятся в спец-панель
DeertOff
Отправлено: 03 Декабря, 2013 - 08:48:40
Гость
Покинул форум
Сообщений всего: 126
Дата рег-ции: Июль 2011
Помог: 3 раз(а)
К этом и дело что в отладке "не ипользуються". Изменённые обьекты.
Нужен вызов методов класса родителя. При вызове метода самого наследника.
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
При этом класс наследник не вызывает(не знает) о методах родителя.
Он всегда знает о методах родителя
Цитата:
Всё просто есть "разработчик PHP", которому нужно отладить своё приложение(классы). Собственно возможность отладки , Без изменения кода (возможно наследование), от класса отладки.
А на фига менять код для отладки? Об отладчиках никогда не слышали*
Цитата:
Единственная мысль парсинг самого скрипта, возможно есть какая альтернатива?
конечно есть - функции интроспекции в самом PHP
Цитата:
В конструкторе я не знаю о "Будущем" классе и его методах (Во время создания своего объекта).
бред какой то
наведите порядок в своих мыслях и сформулируйте задачу не через заднее место
Покинул форум
Сообщений всего: 84
Дата рег-ции: Июнь 2013 Откуда: Россия, Москва
Помог: 1 раз(а)
тупиковый метод отладки... нормального способа реализации - нету. Любое изменение класса-реального, будет влечь за собой изменение класса-дебагового. В дальнейшем погрязнете в этом...
Что могу посоветовать - так это тесты+рефакторинг.
Покинул форум
Сообщений всего: 126
Дата рег-ции: Июль 2011
Помог: 3 раз(а)
Цитата:
При этом класс наследник не вызывает(не знает) о методах родителя.
Он всегда знает о методах родителя
Для человек пишущего для себя - бесспорно.
Но, если пишешь для кого-то такое понятие как "Абстракция" должно быть в приоритете.
Класс родитель по определению не знает что от некого наследуют!
А если он знает о родителе - значит вызывает его методы, значит, после отладки придётся удалять всё что связано с родителем!
Цитата:
Всё просто есть "разработчик PHP", которому нужно отладить своё приложение(классы). Собственно возможность отладки , Без изменения кода (возможно наследование), от класса отладки.
А на фига менять код для отладки? Об отладчиках никогда не слышали*
У меня вопрос и состоял в том что как избежать изменения кода!
Всё возможно... со скалы всем прыгать не запрещатют.
Цитата:
В конструкторе я не знаю о "Будущем" классе и его методах (Во время создания своего объекта).
бред какой то
Не бред а факт.
Цитата:
Единственная мысль парсинг самого скрипта, возможно есть какая альтернатива?
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
DeertOff пишет:
Для человек пишущего для себя - бесспорно.
Если Вы унаследуете класс, значит должны знать его интерфейс, так уж устроено. Потомок знает об интерфейсе родителя. Если не знает значит нефиг наследовать.
Ето всего лишь пример. Не стоит об етом забивать. Но смысл следующий. Всегда визиваеться логирование. Но логирование происходит если включен дебаг-режым.
Там конешно можно поизвращаться с помощю debug_backtrace, выводом в консоль, записью в файл, максимальным размером файла и прочее. Но ето куда лучше наследования от класса для дебага, что нарушает ООП-концепцию
DeertOff
Отправлено: 03 Декабря, 2013 - 11:51:52
Гость
Покинул форум
Сообщений всего: 126
Дата рег-ции: Июль 2011
Помог: 3 раз(а)
.... Блин, возможно я не правильно выразился. Мне "НЕЛЬЗЯ" что-бы дочерний объект знал, о классе тестере! При - этом тестер должен знать о всех методах дочернего класса! Если он будет вызывать методы тестера - придется после теста, удалять часть написанного кода! А это рушит всю структуру - Тестируемый класс не должен вызывать методов класса который его тестирует!
Ситуация такая -> Загружаеться "index.php" -> от подгружает контроллер -> он подгружает модель -> втыкает данные в контроллер -> контроллер грузит представление...
При этом во все стрелки воткнуть свой обработчик!
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
А зачем удалять. Еще раз повторюсь, логирование будет происходить только если свойство $debug в моем примере будет иметь значение true, иначе ниччего не произейдет. А теперь представьте следующую ситуацию: Вы сделали отладку, удалили все логирование, но забили подправить еще один баг. Вам наново нужно будет ставить логировани, а так одна пимпочка и логирование снова включено.
Покинул форум
Сообщений всего: 126
Дата рег-ции: Июль 2011
Помог: 3 раз(а)
В вашем примере исключения. Они рубят скрипт а мне надо проверить всё что есть. До конца. Всё дело в том что работает несколько разработчиков, каждый может допустить ошибку, идея в том что-бы каждый разработчик решал свои ошибки.
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Это пример исключительной ситуации, тоесть неверно запроса к БД. Но также там стоит try...catch, что позволяет не кидать Вам исключение в ответ, а залогировать и продолжить работу скрипта.
Одним словом приведите пример как Вы хотите сделать и не будем тут обсуждать сверическых коней в вакууме
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.