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

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

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

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

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

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

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

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

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

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

Чао,

Донато

Существует, по существу, 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.

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

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

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