Различия между локальным и удаленным серверами

Я занимаюсь разработкой сайта с Люмен рамки.

Все настроено и отлично работает локально. Однако это не относится к удаленному серверу.

Примеры:

  • Когда я восстанавливаю данные из моей базы данных, даже если столбец содержит только целые числа, результат в локальной integer, но в удаленном: string, Я должен уточнить (int) перед целочисленными значениями, чтобы убедиться, что они являются целыми числами.

  • Локально все мои классы принадлежат пространствам имен. Все работает локально и удаленно, иногда я оказываюсь с Class 'blabla\blibli' not found

Локально я использую Xampp (версия PHP 5.6.14, MySQL версия 5.0.11-dev) и удаляю, я нахожусь на общем сервере OVH (версия PHP 5.6.15, версия MySQL 5.1.73).

Вы когда-нибудь сталкивались с этим? Есть ли способ это исправить? Может быть файл конфигурации для записи?

РЕДАКТИРОВАТЬ : Учитывая комментарии ниже, кажется, что ответы на мои вопросы на самом деле зависит от использование операционной системы.

Локально я работаю на машине с Windows, а в удаленной — на машине с Linux. Windows, кажется, меньше хлопот с определенными правилами, например с учетом регистра.

0

Решение

Когда я восстанавливаю данные из моей базы данных, даже если столбец содержит
только целые числа, результат в локальном является целым, но в удаленном: строка.
Я должен указать (int) перед целочисленными значениями, чтобы убедиться, что они
целое число.

Это происходит потому, что PHP не знает, как интерпретировать результат запроса. Нет информации о том, как интерпретировать значения столбцов. Чтобы это исправить и иметь правильное представление типов в PHP, у вас должен быть установлен MySQL Native Driver (mysqlnd).

Вот ссылка на страницу документации, которая объясняет, как это сделать.

Локально все мои классы принадлежат пространствам имен. Все работает локально
и в удаленном, иногда я с классом ‘blabla \ blibli’ не
найденный

Согласно комментариям, кажется, что вы разрабатываете на одной ОС и развертываете на другой ОС. Так как Windows на самом деле НАМНОГО БОЛЬШЕ чем Linux (и я не фанат Linux, это простой факт), они склонны много прощать, когда дело доходит до чувствительности к регистру, а что нет.

Прощение Windows за такие вещи не означает, что они лучше или что с Windows меньше хлопот (от POV системного администратора Windows — это кошмар). Это просто означает, что вы не можете быть ленивым и ожидать, что ОС все простит, и угадаете, как вы хотели, чтобы ваш код работал.

  • Быть последовательным
  • Настройте среду разработки в соответствии со средой развертывания. Вы можете использовать виртуальные машины для этого. Если вы предпочитаете разработку под Windows, вы можете использовать Oracle Virtualbox для запуска ОС Linux, настроить Samba, а в Windows вы можете подключить диск Linux. Это позволяет вам запускать вашу IDE под Windows, и весь код сохраняется в Linux. Ваш веб-сервер и php должны работать под Linux, и вы можете получить к ним доступ через браузер, который работает под Windows
  • Настройте тесты. Запустите их, прежде чем развернуть. Это скажет вам, возможно, вы что-то пропустили или пропустили
  • Быть последовательным

Удачи.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]