Почему index.php вызывается несколько раз при обслуживании веб-страницы? - PullRequest
0 голосов
/ 19 ноября 2011

У меня была проблема, с которой я впервые столкнулся с настройкой моего PHP-отладчика (xDebug), пока не обнаружил, что мне нужно нажимать Продолжить (F5) в моей IDE (NetBeans) 6 раз, пока страница не появится отображается.

Примечание: я разбиваю первую строку PHP, которая находится в index.php. Конечно, то же самое происходит, если у вас есть точка останова в index.php ...

Может кто-нибудь объяснить причину этого эффекта и / или возможности отследить его?

Спасибо;)

Ответы [ 2 ]

2 голосов
/ 19 ноября 2011

Если загружаемая страница содержит ресурсы, которые также выводятся в результате работы контроллера Zend, тогда для каждого из них запускается отладчик. Например, допустим, вы передаете файлы javascript и CSS через контроллер Zend, чтобы он мог по какой-то причине вставлять в них динамические блоки, каждый раз, когда вы загружаете страницу, которая их использует, будет вызываться index.php и различные вещи. Zend делает для разрешения URL будет сделано.

Это также происходит, когда вы пытаетесь сослаться на ресурс, который не существует. действующие правила переписывания разработаны таким образом, что любой запрос, который не преобразуется в реальный файл в файловой системе, будет запускать скрипт Zend index.php.

Если на вашей странице есть какие-либо сгенерированные Zend ресурсы или есть ссылки на несуществующие ресурсы, вы увидите, что скрипт index.php вызывается несколько раз.

Кстати, это хорошая причина, по которой вам следует создавать динамический контент только через Zend. Я столкнулся с проектами, где разработчик обслуживал все через контроллер Zend. Учитывая, насколько тяжелым и дорогим является Zend-фреймворк, это действительно может снизить производительность сайта.

1 голос
/ 14 февраля 2014

У меня была такая же проблема. Это было вызвано неправильным RewriteRule в файле .htacces. У меня было что-то вроде

#RewriteRule .* index.php

замена его правилом, упомянутым "nevvermind", исправит проблему (см. Выше)

...