sql >> Database teknologi >  >> RDS >> Database

Integrer Firebase med PHP til realtidskommunikation

Datastyring og transaktioner i realtid er den seneste kommunikationsform i disse dage. Folk har brug for hurtig dataflow, mens de bruger mobil- og webapplikationer. Der er en masse tjenester tilgængelige på internettet til oprettelse af realtidsdatabaser og kommunikationssystemer. For eksempel er Pusher, Onesignal og Googles Firebase berømte værktøjer til det. Tidligere har du lært, hvordan du integrerer Firebase i Laravel og dækket følgende emner:

  1. Konfigurer Firebase og generer API-nøgler.
  2. Integrer i Laravel

I dette PHP Firebase-eksempel vil jeg give dig en lille opsummering af tidligere artikel og vise dig, hvordan du integrerer Firebase i PHP 7.x, hvilket skaber en simpel CRUD-funktion, som du kan udføre databasemanipulation med.

Integrer Firebase med PHP
  • En lille opsummering af Firebase
  • Hvad bruges Firebase til?
  • Firebase VS MySQL
  • Fordele og ulemper ved Firebase
  • Opsætning af Firebase i konsol
  • Opsætning af PHP-server hos Cloudways
  • Integrer PHP med Firebase
  • Opret forbindelse med Firebase
  • Opret brugerklasse i Users.php
  • Forbind Firebase med PHP-kontaktformular
  • Afsluttende ord

En lille opsummering af Firebase

Firebase er en kommunikationstjeneste i realtid, der leverer dataflow i realtid til chat-, mobil- og webapplikationer. Det leverer adskillige realtidstjenester, herunder Cloud-meddelelser, godkendelsessystemer, Firebase PHP-database, Notifikationssystemer, Storage og Firebase Hosting, hvilket gør dens platform til en komplet overflod af værktøjer og tjenester til udvikling af apps af høj kvalitet.

I denne artikel vil jeg dække korte detaljer om Firebase-databasen. Faktisk leverer Firebase en PHP-realtidsdatabase og backend som en tjeneste. Tjenesten giver udviklere en API, der tillader synkronisering af applikationsdata på tværs af klienter, der er gemt i Firebase-skyen. Dette eliminerer behovet for ethvert relationelt databasesystem på din hostingserver som MySQL og andre.

Hvad bruges Firebase til?

Når brugeren ønsker at oprette, generere eller hente data i et meget hurtigt tempo fra databasen, giver Firebase realtidstjenester dem let at udføre operationer som livestreaming, chatfunktion og mere. Det er et perfekt værktøj til applikationer, der har store databaser såsom Lyft, Shazam, Alibaba osv.

Nogle vigtige funktioner i Firebase er:

  • Ingen ekstra penge til backend-server
  • Hurtig visning af data på serveren
  • NoSQL, hvilket betyder, at det er hurtigere
  • Analyse
  • Sikker og hurtig hosting
  • Machine Learning Kit
  • Godkendelsestjeneste for brugersikkerhed
  • Cloud Storage
  • Hurtig synkronisering af data

Mindre besvær. Mere udvikling.

Lad os fremtidssikre dine hostingkrav. Du fokuserer på at bygge dine applikationer.

Start gratis

Firebase VS MySQL

Firebase er bogstaveligt talt anderledes end traditionelle databaser som MySQL og gemmer data i form af dokumenter. Disse dokumenter kan manipuleres i realtid i medier på tværs af platforme. MySQL er en relationel database, som arbejder med nøgle->værdi koncept og skaber relationer til forskellige datasæt.

Disse relationer bruges derefter til datatransaktioner. MySQL mangler dataovergangskonceptet i realtid og kræver så meget arbejde for at skabe REST API'er.

På den anden side tilbyder Firebase-databasen forskellige platforme som Android, iOS og Web til at skabe hurtige API'er. Grundlæggende er Firebase en hierarkisk datastruktur, dvs. den er ligesom et JSON-træ i skyen.

Firebase har konceptet nøgler, som er navnene på de noder, som du gemmer data under. Du kan på en eller anden måde sammenligne dem med de primære nøgler i en relationsdatabase, men der er intet koncept om en administreret fremmednøgle i den.


Få din VueJS-håndbog nu

Indtast blot din e-mailadresse og få downloadlinket i din indbakke.

Tak

Din e-bog er på vej til din indbakke.


Fordele og ulemper ved Firebase

For nylig stødte jeg på Stack Exchange-spørgsmålet om fordele og ulemper ved Firebase, og det forklarer dem meget godt.

Pro'er

  • Hvis din app kører på en centraliseret DB og opdateres af mange brugere, er den mere end i stand til at håndtere dataopdateringer i realtid mellem enheder.
  • Laget i skyen, så let tilgængelig overalt.
  • Cross Platform API (hvis du bruger denne DB med en app)
  • De hoster dataene – hvilket betyder, at hvis du gemmer en masse data, behøver du ikke bekymre dig om hardware.

Ulemper:

  • Medmindre din app kører på én centraliseret database, der er opdateret af et stort antal brugere, er det en stor overkill.
  • Lagringsformatet er helt anderledes end SQL (Firebase bruger JSON). Så du ville ikke være i stand til at migrere så let.
  • Rapporteringsværktøjer er ikke i nærheden af ​​dem i standard SQL.
  • Omkostninger – begrænset til 50 forbindelser og 100 MB lagerplads.
  • Du hoster ikke dataene, det gør Firebase. Afhængigt af hvilken server du får, ser det ud til at have været en del forstyrrelser på det seneste.

Opsætning af Firebase i konsol

Som jeg har nævnt ovenfor, at den forrige artikel har dækket alle trinene til opsætning af Firebase-database i konsollen, kan du blot følge denne artikel for en hurtig opsummering. De punkter, du skal følge for at konfigurere Firebase, er:

  1. Opret et projekt i Firebase
  2. Opsæt læse- og skriveregler for brugere
  3. Flyt til bruger og tilladelser for at generere API-nøgler
  4. Download hemmelig Json-fil og gem i dit projekt

Nu er du klar til at integrere PHP med Firebase.

Opsætning af PHP-server på Cloudways

Da Cloudways allerede leverer PHP 7.x-versionen på sin hosting til PHP-websteder, skal du blot tilmelde dig og starte en server, og resten kommer forudlavet på platformen. Applikationen konfigureres sammen med serveren, og du kan få adgang til den via URL på siden med adgangsoplysninger

Du skal sørge for nogle få ting, før du kører Firebase på PHP-servere, at du skal have PHP>=7.0-version tilgængelig med mbstring PHP-udvidelse.

Du kunne måske også lide: Sådan hoster du PHP på Amazon AWS EC2

Integrer PHP med Firebase

Firebase har en fantastisk API, som understøtter implementering på forskellige sprog. Til brug af PHP med Firebase giver det en komplet PHP-pakke, som du kan integrere til at arbejde med Firebase. I denne applikation vil jeg bruge kreait/firebase-php som også anbefales af Firebase.

Den anbefalede måde at installere Firebase Admin SDK på er med Composer. Composer er et afhængighedsstyringsværktøj til PHP, der giver dig mulighed for at erklære de afhængigheder, dit projekt har brug for, og installere dem i dit projekt.

komponist kræver kreait/firebase-php ^4.17.0

Alternativt kan du angive Firebase Admin SDK som en afhængighed i dit projekts eksisterende composer.json-fil:

{  "require":{     "kreait/firebase-php":"^4.17.0"  }}

Efter installationen skal du kræve Composers autoloader:

 

Opret forbindelse med Firebase

Når du har afsluttet pakkeinstallationen og tilføjet autoladeren til PHP-filen, kan du oprette en forbindelse med Firebase ved hjælp af den hemmelige fil, der er downloadet fra konsollen. Du skal videregive URL'en til denne fil i metoden ServiceAccount::fromJsonFile(). For det andet skal du finde Firebase-applikationens URL.

 PHP-fil.$serviceAccount =ServiceAccount::fromJsonFile(__DIR__ . '/secret/php-firebase-7f39e-c654ccd32aba.json');$firebase =(ny fabrik)   ->withServiceAccount($serviceAccount)   ->withDatabase('Uri('https:Uribase) //my-project.firebaseio.com')   ->create();$database =$firebase->getDatabase();

Nu på dette tidspunkt, hvor du laver var_dump($database); du vil se hele databaseobjektet returneret af Firebase på din browserskærm.

Opret brugerklasse i Users.php

Den næste ting jeg vil gøre er at oprette en ny fil kaldet Users.php og erklære en brugerklasse i den. Klassen vil indeholde en konstruktør, hvori jeg vil oprette en forbindelse af PHP med Firebase API og initialisere den. Derefter får jeg oprettet databasen i firebase.

offentlig funktion __construct(){       $acc =ServiceAccount::fromJsonFile(__DIR__ . '/secret/php-firebase-7f39e-c654ccd32aba.json'); $firebase =(ny fabrik)->withServiceAccount($acc)->create(); $this->database =$firebase->getDatabase(); }

For nu at oprette PHP CRUD-funktioner til at manipulere databasen, vil jeg oprette separate metoder for hver brugssag. Men lad os først oprette to egenskaber mere uden for konstruktøren, som indeholder databasenavnet

beskyttet $database; beskyttet $dbname ='brugere';

Lad os nu oprette en get()-metode til at hente dataene. Det vil indeholde bruger-id'et til at hente specifik brugerpost. Metoden vil også kontrollere, om bruger-ID'et ikke er tilgængeligt eller indstillet, i tilfælde af det vil returnere falsk. Mens hvis finder, at ID'et er indstillet korrekt, vil værdien hentes med succes.

public function get(int $brugerID =NULL){           if (empty($brugerID) || !isset($brugerID)) { return FALSE; }       hvis ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){           retur $this->database->getReference($this->dbname)-> getChild($brugerID)->getValue(); } andet {           retur FALSK; }   }

Inde i insert()-metoden sender jeg rækken af ​​data, fordi den kan indeholde enkelte eller flere data. Hvis dataene allerede er tilgængelige for det specifikke bruger-id, opdateres det eksisterende.

public function insert(array $data) {       if (empty($data) || !isset($data)) { return FALSE; }       foreach ($data som $key => $value){           $this->database->getReference()->getChild($this->dbname)->getChild($key)->set($value); }       retur TRUE; }

Nu vil jeg oprette en delete() funktion, som vil have bruger-ID som en parameter. ID'et vil blive valideret, hvis det er indstillet, så fjerner metoden remove() dataene.

offentlig funktion delete(int $brugerID) {       if (tom($brugerID) || !isset($brugerID)) { return FALSE; }       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){           $this->database->getReference($this->dbname)->getChild ($brugerID)->fjern(); returner SAND; } andet {           retur FALSK; }   }

Den komplette brugerklasse vil være som følger:

withServiceAccount($acc)->create(); $this->database =$firebase->getDatabase(); }   offentlig funktion get(int $brugerID =NULL){           if (empty($brugerID) || !isset($brugerID)) { return FALSE; }       hvis ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){           retur $this->database->getReference($this->dbname)-> getChild($brugerID)->getValue(); } andet {           retur FALSK; }   }   public function insert(array $data) {       if (empty($data) || !isset($data)) { return FALSE; }       foreach ($data som $key => $value){           $this->database->getReference()->getChild($this->dbname)->getChild($key)->set($value); }       retur TRUE; }   offentlig funktion slet(int $brugerID) {       if (tom($brugerID) || !isset($brugerID)) { return FALSE; }       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){           $this->database->getReference($this->dbname)->getChild ($brugerID)->fjern(); returner SAND; } andet {           retur FALSK; }   }}?>

Lad os nu teste klassen. Prøv at anvende metoder og tjek Firebase-databasen, om den opdaterer eller ej. Start først klassen:

$users =new Users();

Lad os nu indsætte nogle data via insert()-metoden:

$users =new Users();//var_dump($users->insert([//    '1' => 'John',//    '2' => 'Doe',//    '3' => 'Smith'//]));

På samme måde kan du få eller slette data som denne:

var_dump($users->get(1));var_dump($users->delete(2));

Så du kan se, hvordan jeg byggede en grundlæggende CRUD-applikation ved hjælp af PHP og Firebase ved at oprette en simpel klasse. Selvfølgelig kan du udvide det og kan skabe noget spændende i henhold til kravene.


Mindre besvær. Mere udvikling.

Lad os fremtidssikre dine hostingkrav. Du fokuserer på at bygge dine applikationer.

Start gratis

Forbind Firebase med PHP-kontaktformular

Kontaktformularen er en væsentlig komponent på ethvert websted, da det samler brugernes beskeder og forespørgsler. Lad os oprette en simpel PHP-kontaktformular og forbinde den med Firebase for at modtage beskeder. Dette vil omfatte grundlæggende kodning, da det blot vil give dig en idé om, hvordan du forbinder det. Jeg bruger den samme klasse User.php og dens insert() funktion:

Kontaktformularens designkode vil være følgende:

   Sidetitel               
       
           
               
                    - 
kontakt os
                               
                                                           "name" name ="navn" type ="tekst" pladsholder ="dit navn" class ="form-kontrol">