Приветствую. Дебажу модуль оплаты от Тинькоф. Суть в следующем: в одном месте там идет получение заказа Order::load($orderId) и в зависимости есть ли данные или нет скрипт завершается либо обновляет статус заказа. Судя по поведению у меня Order::load($orderId) ничего не получает. Пытаюсь проверить print_r - получаю ошибку Fatal error: Allowed memory size of 104857600 bytes exhausted... память пробовал увеличивать - не помогло.
Как посмотреть, что у меня находится в сущности Order загружая какой-то уже существующий заказ методом load?
Комментарии
Настроить xdebug и дебажить как настоящий разработчик
Читаю про это средство. Вот только не догоняю как его юзать в моем случае. Я по sshfs монтирую проект к себе в файловую систему и вношу правки. Где должно быть установлено данное расширение php: на сервере или локально у меня в операционной системе?
Еще попадалась инфа о xdebag в ide (например phpStorm). Это что то другое?
Учитывая, что код находится на удалённом сервере, быстрее всего будет поставить модуль devel и, зная айдишник заказа, открыть его в админке и на вкладке devel всё посмотреть. Только предварительно в настройках devel в качестве Variables Dumper выбрать Symfony var-dumper
Да, я уже выяснил у хостера, что xdebug нельзя установить на услуге хостинга. У себя на vds поставил его уже для изучения этого инструмента, а то я как пещерный человек видимо)
Спасибо за совет с devel - воспользуюсь им для отладки. Но уже опытным путем удалось выяснить, что условие if(!$order) у меня всегда выдавало false, в то время как isset или empty работают.
Судя по всему ты уже вырос из сайт-билдера и перешел в стадию разработчика. А тут уже действует правило: чтобы использовать максимально инструменты для разработки нужно развернуть сайт локально, на своем компьютере. Ты получишь:
Согласен с вашими доводами о преимуществах локальной разработки, например в Докере. Но для меня есть один минус докера - это работа с дизайнером. В случае разработки на своем vds он сразу видит изменения и не тратится время на деплой. Было бы прикольно, если бы можно было как-то получить доступ к контейнерам извне. Возможно есть такая возможность, но я о ней не знаю.
Пользуясь случаем спрошу, а по SSH нельзя использовать IDE и инструменты отладки в случае, что сервер мой и любые доп средства я могу на нем установить?
И мне еще не понятна работа IDE. Допустим, мне надо отладить какой-нибудь контроллер. Как IDE запускает контекст всей системы, начиная с index.php, ну и взаимодействие с бд в том числе? IDE - это же ведь не только выполнение php кода в файле!
Это уже следующий уровень разработки) Работаем на локалке, затем деплоим на дев-сервер, если нужно показывать клиенту или работать с внешними специалистами.
Можно, но сетевые задержки очень бесят, например при сохранении файлов
Например PhpStorm перехватывает запросы из браузера и передает их в отладчик. Как работают другие IDE, к сожалению, не знаю.
Понял, спасибо за разъяснения) и если не возражаете последний вопрос - вы платите за phpStorm на linux?) или же есть какие то способы обхода лицензии?)
У меня OpenSource лицензия, как у разработчика OpenSource проекта - сайта drupal.ru
Везет)) а то 200$ как то больно неприятно платить раз в год) хотя понимаю, что любой труд должен быть вознагражден....возможно стоит присмотреться к бесплатным IDE)
@madt очень хвалит VSCode
я его итак использую как редактор! Но видимо, чтоб пользоваться им как IDE надо доставлять плагины! Проработаю тоже этот вариант) Сенкс за наводку! А как редактор, он тоже вполне себе неплох)