Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment construire une application php mysql qui fonctionne hors ligne

Il y a essentiellement 3 façons de procéder :

Version 1 :"Old school" :PHP-Gtk+ et bcompiler

  • tout d'abord, si vous ne l'avez pas déjà fait, vous devez séparer votre logique métier de votre couche de présentation (HTML, moteurs de modèles, ...) et de votre couche de base de données
  • adaptez ensuite votre couche de base de données, afin qu'elle puisse vivre avec une base de données alternative (SQlite local vient à l'esprit) et effectuez la synchronisation lorsqu'elle est à nouveau en ligne
  • Utilisez enfin PHP-Gtk+ pour créer une nouvelle interface utilisateur et emballez tout cela avec bcompiler

Version 2 :"Standard" :emportez votre serveur avec vous

Version 3 :"Web 2.x" :Déplacer l'application du serveur vers le navigateur

  • Déplacez la logique de votre application du côté serveur (PHP) vers le côté client (JS)
  • Faites de votre partie serveur (PHP) uniquement une couche d'accès aux données ou de synchronisation
  • Utilisez les fonctionnalités HTML5 hors ligne pour remplacer votre accès aux données par des données locales si vous êtes hors ligne et pour vous resynchroniser si vous êtes en ligne

Lequel est le meilleur ?

Cela dépend de ce que vous avez et de ce que vous voulez. Si la majeure partie de votre logique métier est en PHP, le déplacer dans le navigateur peut être extrêmement coûteux - sachez que cela génère également une toute nouvelle classe de cauchemars de sécurité. Personnellement, je ne recommande pas le portage de cette façon, mais je le recommande pour les nouvelles applications, si la base de données de sauvegarde n'est pas trop volumineuse.

Si vous avez choisi de conserver votre logique métier PHP, la décision entre 1 et 2 est souvent une question de la quantité d'interface utilisateur de votre application - s'il ne s'agit que de quelques formulaires CRUD, 1. peut être une bonne idée - c'est définitivement le le plus portable (dans le sens de l'emporter avec vous). Sinon, optez pour 2.