Хорошо, я подумал, что лучше добавить новый ответ, чтобы я мог добавлять ссылки, форматировать код и т. Д. Извинения за дубликат.
Что ж, обучение отладке вашего кода, безусловно, большой шагвверх, но тот, который обеспечит огромное понимание того, что на самом деле делает код, а не полагается на echo и print_r!:) Особенно для сложного и действительно объектно-ориентированного кода, в котором вы постоянно перемещаетесь между объектами.
Во-первых, убедитесь, что вы используете правильную IDE.Опять же, я рекомендую Netbeans, но Eclipse будет работать.Все ссылки отсюда будут предполагать Netbeans.
Существует большое руководство по отладке с примером здесь на Netbeans wiki .Существуют также руководства по настройке OSX , Windows и Ubuntu , поэтому выбирайте свой яд!
Причина, по которой я предложил CartController.phpи updatePostAction - потому что вы можете прочитать из структуры URL Magento, какой модуль, контроллер и действие вызываются.Итак, если вы проверите форму на странице корзины (/ checkout / cart), вы увидите, что форма отправляется на /checkout/cart/updatePost/
, что означает, что Mage_Checkout
- это модуль, CartController
- это контроллер, а updatePostAction
это метод.Поэтому, когда пользователь нажимает кнопку «Обновить корзину», управление (и содержимое корзины) передается этому методу, достигая точки останова.Вы также можете выбрать addAction
в том же классе, чтобы поймать его так, как он был добавлен на странице продукта.
После того, как вы в активном сеансе отладки, проверьте переменные и добавьте наблюдения (при необходимости) впонаблюдайте за тем, что происходит.Используйте клавишу F8
для перемещения и F7
для перехода на интересные звонки.
Отладка определенно займет у вас не менее одного дня, чтобы осмыслить процесс, но инвестиции, безусловно, стоят того, они сделают вас гораздо лучшим разработчиком.
Удачи!JD