PHP и IIS - не может переопределить класс - PullRequest
1 голос
/ 25 мая 2011

Иногда при запуске веб-сайта PHP я получаю следующую ошибку:

“Fatal error: Cannot redeclare class ExampleClass in 
              C:\website\ExampleClass.php on line 5”

однако строка 5 в файле:

 require_once C:\website\ExampleClass.php

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

Есть липараметр безопасности в iis, который предотвращает выполнение сценариев по любой причине (слишком много ошибок / попыток выполнения?)

Спасибо,

*, редактировать *

Это произошло сегодня снова, и когда это происходит, оно, похоже, влияет на все страницы сайта, и на всех страницах возникает одна и та же ошибка.(Невозможно переопределить класс в строке 5).Строка 5 - это строка, в которой класс определен в отдельном файле, однако доступ к нему, по-видимому, возможен только с помощью вызовов _once.

Ошибка исчезла после того, как я очистил пул приложений в IIS 5. Любая идея о том, почему очистка пула приложений повлияет на что-либо, или почему эта ошибка возникает через случайные интервалы?

1 Ответ

2 голосов
/ 25 мая 2011

IIS не может заставить PHP забыть, что он уже содержит файл. Это включает в себя «память» для выполнения сценария, и не сохраняется после окончания сценария. Скорее всего, вы снова включаете файл где-то еще, используя обычную директиву require.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...