Как создать приложение php mysql, работающее в автономном режиме

У меня есть веб-приложения, которые хранят данные в базе данных MySQL в режиме онлайн. Он также извлекает данные с использованием кода PHP, выполняет вычисления на сервере и отправляет результат обратно пользователю.

Данные достаточно просты: имена, описания, цены, НДС, почасовые платежи, которые считываются из базы данных и обрабатываются на стороне сервера.

Часто клиент работает в средах, где интернет-соединение плохое или недоступно. В этом случае я хотел бы, чтобы клиент мог работать в автономном режиме: вводить новые имена, описания, цены и использовать последний НДС для выполнения расчетов. Затем синхронизируйте все данные, как только будет доступно соединение.

Теперь проблема в том, что я не знаю, что является лучшим способом или технологиями для достижения этого. Не волнуйтесь, я не прошу написать код для меня. Можете ли вы просто объяснить мне, как правильно построить такую ​​систему?

Есть ли простой способ использовать мой онлайн-код MySQL и PHP локально?

Должен ли я сохранять нужные мне данные в локальном файле, перестраивать вычисления в JavaScript, выполнять их локально и затем синхронизировать данные, если база данных доступна.

Должен ли я использовать две базы данных MySQL, одну локальную и одну онлайн и выполнять синхронизацию между ними, когда доступны данные? Если да, какую технологию (язык) я должен использовать для выполнения этой операции?

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

Я очень ценю любую помощь и предложение.

Чао,

Донато

Ответ 1

Существует, по существу, 3 способа:

Версия 1: "Старая школа": PHP-Gtk + и bcompiler

  • во-первых, если вы еще этого не сделали, вам нужно отделить свою бизнес-логику от уровня презентации (HTML, шаблоны движков и т.д.) и слоя базы данных.
  • затем адаптируйте свой уровень базы данных, чтобы он мог жить с альтернативным DB (локальный SQlite приходит на ум) и выполнять синхронизацию при онлайн-повторении
  • Наконец, используйте PHP-Gtk +, чтобы создать новый пользовательский интерфейс и упаковать все это с помощью bcompiler

Версия 2: "Стандарт": возьмите свой сервер с собой

  • Посмотрите на Server2Go, WampOnCD и друзей, чтобы создать "двойной кликабельный веб-сервер" (начало Z-WAMP)
  • Вам все равно нужно адаптировать свой уровень БД, как в версии 1

Версия 3: "Веб 2.x": перемещение приложения с сервера на браузер

  • Переместите логику приложения со стороны сервера (PHP) на клиентскую сторону (JS)
  • Сделайте часть вашего сервера (PHP) только для доступа к данным или для уровня синхронизации.
  • Используйте автономные функции HTML5, чтобы заменить доступ к данным локальными данными, если вы находитесь в автономном режиме и повторно синхронизироваться, если онлайн

Какой из них лучше?

Это зависит от того, что у вас есть и чего вы хотите. Если большая часть вашей бизнес-логики находится на PHP, то перемещение ее в браузер может быть слишком дорогостоящим - имейте в виду, что это также создает совершенно новый класс ночных кошмаров безопасности. Я лично не рекомендую переносить таким образом, но рекомендую его для новых приложений, если резервная БД не слишком большая.

Если вы решили сохранить свою бизнес-логику PHP, то разумность между 1 и 2 часто является вопросом о том, сколько пользовательского интерфейса имеет ваше приложение, - если это только несколько форм CRUD, 1. может быть хорошей идеей - это определенно самый портативный (в смысле принятия его с вами). Если нет, перейдите к 2.

Ответ 2

Посмотрите на HTML5 кэш приложений. Это в значительной степени для этого. Есть много of tutorials для этого, так что посмотрите и посмотрите, подходит ли оно вашим потребностям.

Ответ 3

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

Мы также создали простые .exe-пакеты, чтобы люди без опыта могли установить систему или систему обновления...

Ответ 4

Можете ли вы опубликовать свою логику Юрис?