Отладка в PHP с помощью xdebug, docker, phpstorm, netbeans

Поділитися
Вставка
  • Опубліковано 27 жов 2024

КОМЕНТАРІ • 51

  • @МежрёбернаяНевралгия

    Спасибо! 👍
    Несколько дней мучался и только с помощью вашего видео смог настроить отладку на удалённом компе на котором запущен докер-контейнер. Теперь осталось найти ошибку, ради которой была нужна отладка. :)

  • @ГавриленкоМаксим-н9г

    Спасибо, хорошее видео!

  • @mnogokotin
    @mnogokotin 2 роки тому +1

    спасибо за видос

  • @evgeniizaets9243
    @evgeniizaets9243 6 років тому +16

    Спасибо, очень полезная информация! Все никак с var_dump не соскочу. Попытаюсь это сделать с помощью вашего урока)

    • @codingfox
      @codingfox 3 роки тому +1

      аналогично, бро) при том что с php знаком более 10 лет))

    • @AlekseiNS
      @AlekseiNS 3 роки тому +1

      @@codingfox а сколько нас таких еще..)))

    • @ivansavchenco5636
      @ivansavchenco5636 3 роки тому +1

      Разное для разного нужно... Где то удобнее var_dump, где то так дебажить. Некоторые так и остаються на var_dump авсегда и живут счастьливо)))))

    • @evgeniizaets9243
      @evgeniizaets9243 3 роки тому +3

      @@ivansavchenco5636 уже как 3 года живу исключительно с дебаггером. Для меня жизнь делится на "до" и "после". Считанные разы возникала необходимость использовать var_dump, и только когда на проекте не было дебаггера

  • @melomalo1682
    @melomalo1682 6 років тому +2

    Очень подробное описание спасибо за детали - даже в англ ее долго искать - Слушайте для тех кто хочет понимать что происходит а не тупо ставить по туториалу

  • @ulibkaify
    @ulibkaify 6 років тому +2

    Большое спасибо за видео! Теперь я наконец то понял механизм отладки. Честно говоря я бы тоже предпочел чтобы Вы показали процесс отладки в одной из распространенных сред - openserver или xampp :)

  • @MrWarious
    @MrWarious 4 роки тому +1

    Спасибо большое, разобрался при помощи вашего видео.

  • @natalyavoo7633
    @natalyavoo7633 5 років тому +1

    Наконец-то все заработало. Классная штука! Очень удобная! Спасибо за урок!

  • @nikitavorotnyak9661
    @nikitavorotnyak9661 4 роки тому +1

    Мужик ты лучший!!!

  • @АндрейГоликов-э3ъ
    @АндрейГоликов-э3ъ 4 роки тому +1

    Спасибо огромное вам за видеоурок!!! Прям спасли!!!))) Много полезной инфы) а то в этих портах и хостах запутаться можно XD

  • @gradysden2034
    @gradysden2034 5 років тому +1

    Большое спасибо за видео, помогло!

  • @цензураговно
    @цензураговно 5 років тому +2

    Благодарю за полезное видео!
    Уже кое как освоил докер + дебагер + пшпшторм, но это видео внесло больше ясности.

  • @thisfil
    @thisfil 5 років тому +1

    Видео топ, спасибо большое! Ожидал в описании видео найти ссылку на гитхаб с проектом, но увы =)

    • @kuvshinovee
      @kuvshinovee  5 років тому +1

      да забыл выложить на гитхаб

    • @kuvshinovee
      @kuvshinovee  5 років тому

      да забыл сказать есть плейлист по поводу написания простейшего приложения и технологий которые на текущий момент актуальны, там есть ссылка на репозиторий и на докер файл, смотри под этим видео ua-cam.com/video/9B-mCJgapY4/v-deo.html

  • @vasildorenko3685
    @vasildorenko3685 6 років тому +1

    Лайк не глядя, ждем теперь вторую часть, отладка реального проекта, пускай даже не большого, в котором есть ошибки.
    В нетбинсе есть несколько плагинов для отладки. А то вышло так, открыл иде, и
    ээээээ, даже не вспомню, что здеся и где ээээээ, так же мы можем делать точка останова. ... Мы можем настраивать различные параметры.
    Шо это за халтура :)
    За видео спс, мой совет, надо немного готовиться заранее :)

    • @kuvshinovee
      @kuvshinovee  6 років тому +1

      да я нетбинсом последний раз пользовался несколько лет назад (году в 2014) думал ну по пути вспомню, но я там все что надо показал) просто под конец видео все больше лень становится
      я в этом видео еще хотел отладку скриптов из консоли показать и что такое export XDEBUG_CONFIG чтобы переопределить параметры в конфиге но оно и так затянулось.
      да и видео это не о редакторе а о отладчике
      но да учту про подготовку и слова поразиты уменьшу

  • @_pheax
    @_pheax 5 років тому +1

    Спасибо

  • @dmitry.stepanov
    @dmitry.stepanov 6 років тому +1

    Спасибо за видео, очень познавательно.
    Будет ли видео про докер? с большим удовольствием бы посмотрел

    • @kuvshinovee
      @kuvshinovee  6 років тому

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

  • @hjkta
    @hjkta 4 роки тому +1

    Добрый день! Не очень понятен момент про отладочную сессию и то, как это связано с портом 9000, на котором крутится php-fpm. Как шторм с докером общается (с контейнером), если этот самый контейнер нигде наружу этот 9000 не пробрасывает? Что-то никак не могу это в голове уложить, схему в самом начале видел, но всё равно непонятно, как это работает в связке с докером

    • @kuvshinovee
      @kuvshinovee  4 роки тому +2

      давай объясню
      есть докер контейнер, у каждого контейнера есть порты от 1 до 65535 (примерно) на каждом сетевом интерфейсе
      есть хостовая машина у которой свои порты от 1 до 65535 на кажом из ее сетевых интерфесов
      когда браузер с хостовой машины обращается на порт 8080 хостовой машины, запрос пробрасывается на контейнер nginx порт 80, который в свою очередь проксирует запрос на 8080 php-fpm контейнера.
      когда php-fpm конетйнер получает запрос он определяет надо ли начинать отладочную сессию(причины для начала отладочной сессии: если в xdebug настройках указано всегда начинать отладочную сессию, если в запросе есть команда на начало сессии в куках или гет или пост параметрах), если начинать надо, он определяет куда ее отправлять там есть 2 варианта
      1. remote_connect_back= true отправлять туда откуда пришел запрос (на хостовую машину) и использовать порт remote_port (9000) получается запрос идет на хостовую машину порт 9000, на котором висит ide (phpstorm.
      2. remote_connect_back = false значит используется адрес remote_host (172.17.0.1) который указывает на хостовую машину и порт remote_port(9000) где опять же висит ide которая должна слушать подключение
      далее php-fpm ждет инструкции уже в отладочной сессии если она началась.
      сеть между контейнерами она виртуальная, как будто бы контейнеры это отдельные узлы сети.

    • @hjkta
      @hjkta 4 роки тому

      @@kuvshinovee кажется, понял, спасибо! Просто я пытался что-то подобное, что и тут в видео, воссоздать, только на образе докера php-apache, и не выходило. Потом попробовал вот как тут, и получилось. Теперь вот пытаюсь найти объяснение

  • @ДинозаврЖорик
    @ДинозаврЖорик 5 років тому +1

    Cпасибо, отличное видео. Возник вопрос: имя отладочной сессии может быть любым, главное, чтобы оно вообще было (не заметил, чтобы вы его где-то задавали в конфигах xdebug или PHPStorm)? Если например вместо 'magic' задать 'magic2' оно все равно взлетит? И еще один вопрос: иногда в шторме в настройках DBGp proxy задают IDE key - для чего это и то же ли это самое, что и имя отладочной сессии?

    • @kuvshinovee
      @kuvshinovee  5 років тому

      имя отладочной сессии может быть любым, я обычно использую что то вроде magic или foo, bar показать произвольность.
      имя отладочной сессии можно использовать для фильтрации в ide, чтобы останавливаться только в тех точках остановки которые возникают в отладочной сессии.
      например если взять сайт на laravel то есть условно api, также фоновые задачи я их называю обычно worker, ну и консольные команды я называю artisan. Если мне надо отловить запросы к api я указываю отладчику чтобы ide key = api чтобы он ловил отладку только их.

  • @MozgopravTV
    @MozgopravTV 4 роки тому +1

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

    • @kuvshinovee
      @kuvshinovee  4 роки тому

      1. развернуть среду разработки на своем компьютере
      2. отлаживать в среде разработки
      отладка или разработка на проде это плохо

  • @vladimirkamuz
    @vladimirkamuz 5 років тому +1

    Какую графическую оболочку или сборку Linux используете?

    • @kuvshinovee
      @kuvshinovee  5 років тому

      я использовал ну очень много разных оболочек и Linux
      именно на видео ubuntu + gnome3 вроде, но это на втором мониторе.

  • @paveljackevic9113
    @paveljackevic9113 2 роки тому +1

    мама - убей меня абстену...

  • @vesterliandrei174
    @vesterliandrei174 4 роки тому +1

    A vot kak mojna nastroiti XDebug cerez Swoole + PHP-FPM...? )

    • @kuvshinovee
      @kuvshinovee  4 роки тому

      github.com/swoole/swoole-src/issues/1681
      вообще сделать видео на тему различных swoole, reactphp, и тд.

  • @viktoryakovenko757
    @viktoryakovenko757 6 років тому +1

    скажите пожалуйста, зачем в данном случае докер, маппинг и т.п.?
    почему бы просто не запустить локальный сервер? кажется для новичков такой вариант будет проще. При использовании локального сервера куда нужно вписать значение переменной PHP_IDE_CONFIG ? зачем она вообще нужна и с чем ее едят? ))

    • @kuvshinovee
      @kuvshinovee  6 років тому +5

      1. mapping - он нужен для того чтобы ide понимала какой именно фаил запущен на удаленной машине, когда xdebug соединяется с ide он говорит что запущен (/var/www/public/index.php), а по такому пути на компе с ide фаил отсутствует и надо сказать ide что пути с /var/www/public заменить на /home/smpl/projects/demo/public например.
      2. Зачем docker - во первых без докера мне пришлось бы рассказывать как установить php и xdebug руками в разных окружения (Windows, Linux например) и если в Linux это все довольно просто ставиться и запускается, то в винде этот процесс не простой, можно конечно было бы поставить openserver, xampp, denwer и подобное но нафига ставить эти штуки, мне кажется это просто legacy и люди уже давно поняли что настройки окружения в проекте должны быть чтобы не забивать комп разными версиями одного и того же.
      Во вторых большинство рабочих проектов настройки окружения хранят в проекте в docker, rkt, vagrant + virtual box, или всякими скриптами разворачивания окружения(shell, ansible, puppet и тд) и чтобы они могли это применять у себя на работе
      3. Потому что этот локальный сервер это по сути запуск из cli
      4. PHP_IDE_CONFIG нужно прописать до запуска локального сервера, например
      export PHP_IDE_CONFIG="serverName=ololo"
      php -S localhost:8080
      5. PHP_IDE_CONFIG нужна для ide phpstorm в частности, чтобы ide понимала настройки какова сервера использовать, в частности он берет настройки mapping вот тут подробней confluence.jetbrains.com/display/PhpStorm/Debugging+PHP+CLI+scripts+with+PhpStorm и blog.jetbrains.com/phpstorm/2012/03/new-in-4-0-easier-debugging-of-remote-php-command-line-scripts/

  • @romanbush5164
    @romanbush5164 2 роки тому +2

    Мало того что в этой херне невозможно найти переменную или значение переменной, то она ещё добавляется в автозапуск, ужасная вещь, всё тормозит, не разу не python и не C#, C++ . День ото дня убеждаюсь что php мусор... из 2000х

    • @kuvshinovee
      @kuvshinovee  2 роки тому

      ваше мнение очень важно для нас :)
      кстате не pyrhon а python наверно, который по сути тоже самое и встроенный отладчик pdb в python крайне похож на www.php.net/manual/ru/migration56.new-features.php#migration56.new-features.phpdbg другое дело что процесс отладки в этом отладчике еще меньше интегрированн в ide
      > невозможно найти переменную или значение переменной
      ниасилил, виноват php :)

    • @romanbush5164
      @romanbush5164 2 роки тому +1

      @@kuvshinovee подскажите как настроить чтоб все быстро работало и удобно, если есть такая возможность, пока что я её не нашёл, запуск того же отладчика по вызову в phpstorm для веба в частности для ларавел, и поисковик там же в дебагер. Есть ли возможность использовать phpdbg с apache2 php 7.1?

  • @ванёкфедосов-й2к
    @ванёкфедосов-й2к 3 роки тому +1

    ммм, сложнота