Лучший метод для отладки названного веб-сервиса в php?

Использование Ячейка содержит одну из многих вещей в качестве отправной базы, я разработал это, чтобы работать в вашей ситуации.

=IFERROR(INDEX($E$1:$E$4,MATCH(TRUE,ISNUMBER(SEARCH(things,A1)),0)),"")

Обратите внимание, что это формула массива, поэтому ее необходимо ввести, нажав **Ctrl** + **Shift** + **Enter** при выходе из режима редактирования в ячейке. Кроме того, вещи являются именованным диапазоном, относящимся к диапазону $D$1:$D$4

enter image description here

5
задан Zak 14 April 2009 в 07:40
поделиться

6 ответов

Не можете ли вы запустить отладчик и установить точку останова в appserver? Два различных сеанса отладки - один для перехвата вызова механизма шаблонов и один для перехвата вызова в сервере приложений.

Вы должны быть в состоянии отследить выходные данные из сервера приложений в сеансе отладки механизма шаблонов.

Если это не так можно запустить два сеанса отладки, а затем создать несколько тестовых входов для сервера приложений, захватив выходные данные из механизма шаблонов и использовать один отладчик с входами вашего тестового сервера приложений.

2
ответ дан 14 December 2019 в 04:47
поделиться

Это смущающе грубо и совершенно свободно от какого-либо изучения работы отладчика, но вы пробовали добавить

    debugBreak(); 

в точках входа в вашу вызванную рутину? (Предполагая, что оба процесса выполняются на одной машине).

Я использовал эту технику, чтобы вернуться к процессу, вызываемому через AMFPHP. У меня был PHP-файл, загружающий Flash-файл в браузер, который затем перезванивал в PHP с помощью AMFPHP, все на одном сервере. Когда я нажимаю на строку debugBreak (), PhpED восстанавливает контроль.

2
ответ дан 14 December 2019 в 04:47
поделиться

Почему вы не используете сниффер HTTP? Что-то вроде tcpflow.

Кроме того, вы можете просто записать полный XML-файл в файл для каждого запроса и ответа.

К сожалению, из вашего вопроса не ясно, чего вы пытаетесь достичь, так что это всего лишь догадки. Вероятно, вам следует более четко указать, какую проблему вы пытаетесь решить.

Возможно, вы могли бы перефакториентировать свой код, который обращается к сервису удаления, и использовать внедрение зависимостей и макеты. Это позволило бы вам изолировать развитие клиентской части от задней, добавив «поддельные», но действительные данные.

Надеюсь, что это поможет.

1
ответ дан 14 December 2019 в 04:47
поделиться

Можно ли предположить, что вы говорите об отсутствии потоков в PHP, поэтому служба останавливает поток вашей программы и останавливает отладчик? Есть способы обойти это, но они жесткие, громоздкие и хакерские.

Например, если вы используете инфраструктуру, такую ​​как Zend для трафика HTTP, вы можете взломать класс HTTP, чтобы использовать примитивные сокеты для чтения / записи службы вместо встроенный материал и создайте небольшой переключатель задач (цикл :) для отслеживания происходящего.

Конечно, вы можете использовать fopen ('http: // ...') и fread в кусках в цикле как что ж, это может сработать, но вам нужна поддержка http: в потоках.

1
ответ дан 14 December 2019 в 04:47
поделиться

Это не открытый код, но посмотрите Чарльз . Он работает как прокси-сервер и является лучшим отладочным прокси-сервером, который я когда-либо видел. Он работает в Linux, OS / X и Windows.

Практически любая HTTP-библиотека позволит вам указать прокси.

1
ответ дан 14 December 2019 в 04:47
поделиться

Я не очень разбираюсь в отладке PHP , и я не уверен, что следую «проталкиванию среды в какой-то стек», но мне интересно, netcat + некоторые сценарии оболочки могут быть полезны здесь для устранения неполадок ?

Вы можете использовать netcat для:

  • Поддать HTTP-запрос
  • Действуйте как веб-сервер (слушайте порт - выберите порт, любой порт!)

http://www.plenz.com/netcat-tips

Вы можете использовать его, чтобы заглушить фальшивый веб-сервис на одном конце:

echo "<xml .. <node>hello php!</node>" | netcat -lp 80 ... etc

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

Не могли бы вы использовать сценарий оболочки с netcat в качестве посредника, который действует как ваш веб-сервис, немедленно возвращает что-то общее, чтобы сделать ваш PHP счастливым, а затем передает запрос вашему фактическому серверу приложений и регистрирует результаты?

Очень просто.

веб-сервер netcat http://img240.imageshack.us/img240/791/netcat.jpg

1
ответ дан 14 December 2019 в 04:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: