Трассировка PHP для записи формы
Немного предыстории: у меня есть клиент, у которого есть устаревший php-сайт, который был преобразован в python/django за последние 12 месяцев. Однако они все еще используют php-сайт, постепенно отказываясь от него. Некоторые новые данные все еще собираются в старой системе и структуре базы данных от пользователей, но клиенты хотели бы, чтобы они также были доступны на новом сайте, что означает вставку другого оператора mysql insert в php-код для записи в базу данных нового сайта.
Таким образом, проблема заключается в разработчик php исчез и недоступен. Кроме того, код представляет собой беспорядок с несколькими версиями каждого файла php в нескольких каталогах, нулевой контроль версий. Таким образом, я могу найти фрагмент кода, который записывается в базу данных, однако он находится более чем в 20 местах. То, что я хотел бы иметь возможность сделать, это что-то сравнимое с django, вставить строку "Ошибка утверждения" в код формы после ПУБЛИКАЦИИ и просмотреть страницу обратной трассировки отчета об ошибке django, но это php. Итак, каковы мои лучшие варианты здесь? Помнишь, я я в первую очередь разработчик python и в лучшем случае взломщик php. Есть ли что-нибудь встроенное в php, что позволило бы мне увидеть какой-то тип обратной трассировки без слишком большого взлома?
2 answers
Если сервер MySQL версии >=5.0.2, то вы можете использовать триггеры для обновления данных на новом сайте. Это может оказаться проще, чем копаться во всем PHP-коде (который, как вы предположили, вам не нравится).
Phptrace - это простой инструмент для отслеживания потоков выполнения php
$ ./phptrace -p 3130 -s # phptrace -p <PID> -s
phptrace 0.2.0 release candidate, published by infra webcore team
process id = 3130
script_filename = /home/xxx/opt/nginx/webapp/block.php
[0x7f27b9a99dc8] sleep /home/xxx/opt/nginx/webapp/block.php:6
[0x7f27b9a99d08] say /home/xxx/opt/nginx/webapp/block.php:3
[0x7f27b9a99c50] run /home/xxx/opt/nginx/webapp/block.php:10