sql >> Databasteknik >  >> RDS >> Mysql

hur man bygger en php mysql-applikation som fungerar offline

Det finns i huvudsak tre vägar att gå:

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

  • först, om du inte redan har gjort det måste du separera din affärslogik från ditt presentationslager (HTML, mallmotorer, ...) och databaslagret
  • anpassa sedan ditt databaslager så att det kan leva med en alternativ DB (lokal SQLite kommer att tänka på) och utföra synkronisering när du är online igen
  • Använd äntligen PHP-Gtk+ för att skapa ett nytt användargränssnitt och packa allt detta med bcompiler

Version 2:"Standard":Ta din server med dig

  • Titta på Server2Go, WampOnCD och vänner för att skapa en "dubbelklickbar webbserver" (Börja på Z-WAMP a> )
  • Du måste fortfarande anpassa ditt DB-lager som i version 1

Version 3:"Web 2.x":Flytta program från server till webbläsare

  • Flytta din applikationslogik från serversidan (PHP) till klientsidan (JS)
  • Gör din serverdel (PHP) endast till ett dataåtkomst- eller synkroniseringslager
  • Använd HTML5 offlinefunktioner för att ersätta din dataåtkomst med lokal data om du är offline och för att synkronisera om online

Vilken är bäst?

Detta beror på vad du har och vad du vill ha. Om det mesta av din affärslogik är i PHP, kan det vara oöverkomligt dyrt att flytta in den i webbläsaren - tänk på att detta också genererar en helt ny klass av säkerhetsnattmar. Jag personligen rekommenderar inte portering på det här sättet, men jag rekommenderar det för nya appar, om stöddatabasen inte är för stor.

Om du väljer att behålla din PHP-affärslogik är valet mellan 1 och 2 ofta en fråga om hur mycket användargränssnitt din app har - om det bara är några CRUD-former kan 1. vara en bra idé - det är definitivt mest bärbara (i betydelsen av att ta den med dig). Om inte, gå med 2.



  1. Versaler av personnamn i programmering

  2. Hur gör man en andra PDO mysql-fråga på en stund från en annan fråga?

  3. Hur man delar en sträng efter ett specifikt tecken i SQL Server och uppdaterar detta värde till en specifik kolumn

  4. SQL Cross Join