Как создать приложение 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
Можете ли вы опубликовать свою логику Юрис?