Всем Здрасти! Идёт третий день, как я пытаюсь настроить webstorm. Пытаюсь подключится к Xdebag который идёт в комплекте с Open Server. Сервер настроен скорее всего правильно, что доказывает созданный простой скрипт, который подключен к БД и выводит простое сообщение в браузере. Но когда я настраиваю отладку и специально делаю в коде ошибку или ставлю точку остоновы, всегда одно и тоже. В браузере : в PHPStorm : в чем может быть дело?
Серверу собвственно передано, что не просто страницу отдать, а подключится к xdebug? параметр в URL нужон Код (PHP): localhost/somescript.php?XDEBUG_SESSION_START=phpstorm-xdebug
Ke1eth Спасибо, но не могли бы вы немного подробнее, я только первые шаги делаю. А если ещё точнее ,настройка шторма это и есть мой первый шаг) Когда я нажимаю дебаг в шторме, то открывается хром с таким вот адресом : По сути адрес и порт ему в шторме указал, но как вижу, мой адрес от вашего отличается.. и ещё вот что подумал, когда увидел Ваше сообщение - у меня в конфиге php написано : и закралась мысль - нужно ли в пути дебага в шторме указывать "localhost" или в конфиге написать php.test:9000 ?
Бывает так, что кто то задаст вопрос и ты знаешь на него ответ, но не отвечаешь только по тому, что слишком много нужно спросить, для полной картины. Вот если эту тему смотрят те, кто так же не отвечает из-за указанной выше причины, то скажите, что готовы помочь и что Вам для этого надо! я хоть с самого начала настройки скрины сделаю. Я уже все мануалы из инета по настройки наизусть выучил...и не работает!
точка с запятой ; это комментарии*) Тогда вот весь код [xdebug] php.ini. Есть ещё в нём какие то проблемы? Код (Text): [Xdebug] zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll" xdebug.auto_trace = 1 ;xdebug.collect_includes = 1 ;xdebug.collect_params = 0 ;xdebug.collect_return = 0 ;xdebug.collect_vars = 0 xdebug.default_enable = 0 ;xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD ;xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD ;xdebug.dump.COOKIE = "" ;xdebug.dump.FILES = "" ;xdebug.dump.GET = "" ;xdebug.dump.POST = "" ;xdebug.dump.REQUEST = "" ;xdebug.dump.SERVER = "" ;xdebug.dump.SESSION = "" ;xdebug.dump_globals = 1 ;xdebug.dump_once = 1 ;xdebug.dump_undefined = 0 ;xdebug.extended_info = 1 ;xdebug.file_link_format = "" ;xdebug.idekey = "" ;xdebug.manual_url = "http://www.php.net" ;xdebug.max_nesting_level = 100 ;xdebug.overload_var_dump = 1 ;xdebug.profiler_append = 0 xdebug.profiler_enable = 0 xdebug.profiler_enable_trigger = 0 xdebug.profiler_output_dir="%sprogdir%/userdata/temp/xdebug/" xdebug.profiler_output_name = "cachegrind.out.%H%R" ;xdebug.remote_autostart = 0 xdebug.remote_enable = 1 ;xdebug.remote_handler = "dbgp" xdebug.remote_host = "localhost" ;xdebug.remote_log = "none" ;xdebug.remote_mode = "req" xdebug.remote_port = 9000 ;xdebug.show_exception_trace = 0 ;xdebug.show_local_vars = 0 ;xdebug.show_mem_delta = 0 ;xdebug.trace_format = 0 ;xdebug.trace_options = 0 xdebug.trace_output_dir = "%sprogdir%/userdata/temp/xdebug/" ;xdebug.trace_output_name = "trace.%H%R" ;xdebug.var_display_max_children = 128 ;xdebug.var_display_max_data = 512 ;xdebug.var_display_max_depth = 3
хорошо http://php.test:9000/?XDEBUG_SESSION_START=16419 что мы видем? ) мы видем, что у тебя в настройках phpStorm указан хост, где искать веб-сервер вот этот: php.test, а нужон localhost, меняй. Далее можешь попробовать в браузере после попытки открыть http://php.test:9000/?XDEBUG_SESSION_START=бла-бла-бла руками поменяй php.test на localhost, посмотри результат.
Так?) После того как открыл все строки в браузере пишет - "отправка запроса" , но нет не чего ,что бы увидеть. То есть точки остановы в коде наставил ,но в консоли не чего нет. Добавлено спустя 23 минуты 16 секунд: Фуууух...Спасибо Вам, я бы не за что сам не справился! У меня остался ещё один вопрос : в as3 есть метод "trace()" который выводит в ( тут это скорее всего "консоль" ) результат выполнения кода например: Код (Text): var a : int = 1 ; var b : int = 2 + a ; trace( b ) ; //3 или помогает смотреть ,что в метод передалось значение... здесь есть что то подобное?
Всем ещё раз - Спасибо! Очень рад ,что наконец можно приступить к учению.. И вот только маленький вопрос, тоже по отладке: если я создаю обычный файл.php5 и пишу там ..и ставлю точку остановы, то все работает. Код (Text): $count = 5 ; var_dump($count) ; но если я создаю класс, тоже самое, уже не работает. Почему? Пишу вот как : Код (Text): <?php class Main { public $count = 10 ; public function foo() { var_dump($this->count) ; } } и ещё, я смотрю учебник по классам и то ли так так написано, то ли я чего не понимаю. Там как бы в одном файле несколько классов сразу..? Типа : Код (Text): <?php class A { } class B { } ?> если писать классы в одном файле, то какой в них смысл? Разве классы не созданы для разделения кода на обьекты, для удобства?
=) var_dump это не брейкпоинт какая разница в скольких файлах у тебя что лежит? на код это не влияет.
я понимаю, что это - метод, выводящий информацию, но я ставлю точку останову на нём...но это уже не важно, мне обьяснили почему в классе так не получается, оказывается просто надо его экземпляр создать, пока не привычно... Вот как я всегда думал про php...так же и сейчас думаю) Не чего плохого я конечно не думаю, но он тааакой странный) Добавлено спустя 50 минут 12 секунд: Так и мучаюсь с отладкой. я хочу Вас спросить - Вы так же отлаживаете, как и я? ( мой процесс отладки ниже ) ( если есть другой вариант, подскажите пожалуйста, как ) : нажимаю код выглядит так после этого в браузере открываеть вкладка, а в дебаге появляется значения, но не того чего мне надо. для того, чтобы увидеть трую, приходиться нажимать на после чего в самом браузере появляется и вот если надо все повторить. то приходиться закрывать все вкладки в браузере, просто обновление не помогает. потом закрывать в самом шторме.... Как правильно отлаживать? Может, кто то ведёт блоги и возможно у него есть об этом статья или просто кто то знает где об этом написано ( на русском ).
странно, что код не выполняется, если нет ни одной причины выполнять код? пхп компилится налету, не забывайте об этом.
Для меня - это странно!) Точно так же, что теперь мне кажется странным, что я сразу дебаг не настроил. Что нужно, чтобы код выполнялся? После того, как я хоть капельку настроил отладку, я начал смотреть пример который мне показывали на этом форуме. Первая строка и сразу конфуз, я не могу проверить на false\true метод global() в инструкции if. Сложного не чего нет, но так как я ещё не одного ифа не делал на php, то мне нужно проверить, что все работает. Но при моей отладке это почти не реально...Может Вы знаете ответ?
обычно вардамп справляется с 99.99% случаев. и можно тупо эхо делать. Добавлено спустя 2 минуты 38 секунд: читаешь доки/код и смотришь что возвращает в пхп есть сравнение == просто сравнивает. Пустая строка, ноль и фалс будут равны. а есть === сравнение с проверкой типа. Фалс равен только фалс, пустая строка только пустой строке. пиши в скайп igordata
ошибся - функция glob(); Вы в будущем ( если я буду, что то спрашивать ) даже не подумайте. что я не посмотрев хелп задаю вопрос. Мне куда гораздо интересней, самому найти решение. Просто я не как не выйду из ступора, связанного с отладкой. И то ли мне померещилось, то ли нет, но пока я настраивал шторм, мне показалось, что я видел пункты меню - обновлять ( дебагер ) автоматически, при изменении. И при нажатии на стоп в процессе отладки, закрывать сессию в браузере...есть такое?)
Открыл для себя firephp и возник вопрос - как выводить в консоль шторма сообщения из консоли лиса?) ( в настройках консоли есть окно, которое позволяет писать какие то команды... может кто знает, можно ли там может что написать? )