Одна из наших групп пользователей создала и поддерживает сайт на godaddy.com. Человек, который сделал это, ушел, пользователи попросили MIS о помощи, и меня попросили внести изменения. Он должен оставаться на godaddy.com, пока мы не выясним, как лучше всего перенести приложение на наши собственные серверы.
Чтобы создать тестовую среду, я загрузил все на свою рабочую станцию, включил IIS и установил PHP и MySQL. Необходимые изменения были внесены. Пользователи одобрили изменения. К сожалению, один из файлов не работает на godaddy.com. Я прошу помощи, потому что у меня есть опыт работы с PHP, но я мало работал с классами.
Первоначально код имел:
private static $DB_HOSTs = 'xxxxxxx';
Я изменил это на:
private static $DB_HOSTs;
public function __construct() {
$this->DB_HOSTs = (strtoupper($_SERVER["HTTP_HOST"])=='D444L40334') ? 'localhost:3306' : 'xxxxxxxx';
Я читал о «частной статике», чтобы найти переменные, которые нельзя установить с помощью внешних переменных, и необходимо использовать метод __construct (). После внесения этого изменения он работал правильно на моей машине. Я подумал, что это может быть проблема управления версиями и следующий вопрос stackoverflow Обновление версии PHP вызвало проблемы с конструкторами классов подтверждает это.
Мне нужен один и тот же код на моей рабочей станции и на сайте godaddy.com. Я не изменяю файлы, идущие из теста в производство, с разными файлами между ними. Вместо этого я делаю код динамическим. Какие изменения мне нужно сделать в этом случае? Версия PHP моей рабочей станции — 5.3.28, а godaddy.com — 5.2.17. Спасибо
Существует огромная разница между 5.2.x и 5.3.x
Много изменений сделано в объектно-ориентированной стороне php.
Я не буду упоминать, насколько сильно устарел 5.2.x.
Вы можете посмотреть на это, чтобы увидеть изменения.
Других решений пока нет …