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

Intégrez Firebase à PHP pour une communication en temps réel

La gestion des données et les transactions en temps réel sont le dernier mode de communication de nos jours. Les gens ont besoin d'un flux de données rapide lorsqu'ils utilisent des applications mobiles et Web. Il existe de nombreux services disponibles sur Internet pour créer des bases de données en temps réel et des systèmes de communication. Par exemple, Pusher, Onesignal et Firebase de Google sont des outils célèbres pour cela. Auparavant, vous avez appris à intégrer Firebase dans Laravel et abordé les sujets suivants :

  1. Configurez Firebase et générez des clés API.
  2. Intégration dans Laravel

Dans cet exemple PHP Firebase, je vais vous donner un petit récapitulatif de l'article précédent et vous montrer comment intégrer Firebase dans PHP 7.x, en créant une simple fonction CRUD avec laquelle vous pouvez effectuer des manipulations de base de données.

Intégrer Firebase avec PHP
  • Un petit récapitulatif de Firebase
  • À quoi sert Firebase ?
  • Firebase contre MySQL
  • Avantages et inconvénients de Firebase
  • Configurer Firebase dans la console
  • Configurer le serveur PHP sur Cloudways
  • Intégrer PHP à Firebase
  • Créer une connexion avec Firebase
  • Créer une classe d'utilisateurs dans Users.php
  • Connecter Firebase avec le formulaire de contact PHP
  • Derniers mots

Un petit récapitulatif de Firebase

Firebase est un service de communication en temps réel fournissant un flux de données en temps réel pour les applications de chat, mobiles et Web. Il fournit plusieurs services en temps réel, notamment la messagerie cloud, les systèmes d'authentification, la base de données PHP Firebase, les systèmes de notification, le stockage et l'hébergement Firebase, faisant de sa plate-forme une pléthore complète d'outils et de services pour développer des applications de haute qualité.

Dans cet article, je couvrirai de brefs détails sur la base de données Firebase. En fait, Firebase fournit une base de données PHP en temps réel et un backend en tant que service. Le service fournit aux développeurs une API qui permet la synchronisation des données d'application entre les clients stockés sur le cloud Firebase. Cela élimine le besoin de tout système de base de données relationnelle sur votre serveur d'hébergement comme MySQL et autres.

À quoi sert Firebase ?

Lorsque l'utilisateur souhaite créer, générer ou extraire des données à un rythme très rapide à partir de la base de données, les services en temps réel de Firebase leur permettent d'effectuer facilement des opérations telles que la diffusion en direct, la fonction de chat, etc. C'est un outil parfait pour les applications qui ont de grandes bases de données telles que Lyft, Shazam, Alibaba etc.

Voici quelques fonctionnalités majeures de Firebase :

  • Pas d'argent supplémentaire pour le serveur principal
  • Affichage rapide des données dans le serveur
  • NoSQL, c'est-à-dire plus rapide
  • Analytique
  • Hébergement sécurisé et rapide
  • Kit d'apprentissage automatique
  • Service d'authentification pour la sécurité des utilisateurs
  • Stockage dans le cloud
  • Synchronisation rapide des données

Moins de tracas. Plus de développement.

Laissez-nous pérenniser vos besoins d'hébergement. Vous vous concentrez sur la création de vos applications.

Commencez gratuitement

Firebase contre MySQL

Firebase est littéralement différent des bases de données traditionnelles comme MySQL et stocke les données sous forme de documents. Ces documents peuvent être manipulés en temps réel sur des supports multiplateformes. MySQL est une base de données relationnelle qui fonctionne avec le concept clé-> valeur et crée des relations avec différents ensembles de données.

Ces relations sont ensuite utilisées pour les transactions de données. MySQL n'a pas le concept de transition de données en temps réel et nécessite beaucoup de travail pour créer des API REST.

D'autre part, la base de données Firebase fournit différentes plates-formes comme Android, iOS et Web pour créer des API rapides. Fondamentalement, Firebase est une structure de données hiérarchique, c'est-à-dire qu'elle ressemble à une arborescence JSON dans le cloud.

Firebase a le concept de clés, qui sont les noms des nœuds sous lesquels vous stockez des données. Vous pourriez en quelque sorte les comparer aux clés primaires d'une base de données relationnelle, mais il n'y a pas de concept de clé étrangère gérée.


Obtenez votre manuel VueJS maintenant

Entrez simplement votre adresse e-mail et obtenez le lien de téléchargement dans votre boîte de réception.

Merci

Votre ebook est en route vers votre boîte de réception.


Avantages et inconvénients de Firebase

Récemment, je suis tombé sur la question Stack Exchange sur les avantages et les inconvénients de Firebase et cela les explique très bien.

Pros

  • Si votre application s'exécute sur une base de données centralisée et est mise à jour par de nombreux utilisateurs, elle est plus que capable de gérer les mises à jour des données en temps réel entre les appareils.
  • Stocké dans le cloud, donc facilement disponible partout.
  • API multiplateforme (si vous utilisez cette base de données avec une application)
  • Ils hébergent les données. Cela signifie que si vous stockez beaucoup de données, vous n'avez pas à vous soucier du matériel.

Les inconvénients :

  • Sauf si votre application s'exécute sur une base de données centralisée mise à jour par une grande quantité d'utilisateurs, c'est une surpuissance majeure.
  • Le format de stockage est entièrement différent de celui de SQL (Firebase utilise JSON). Vous ne pourriez donc pas migrer aussi facilement.
  • Les outils de création de rapports sont loin de ceux du SQL standard.
  • Coûts :limités à 50 connexions et 100 Mo de stockage.
  • Vous n'hébergez pas les données, Firebase le fait. Selon le serveur dont vous disposez, la durée d'affichage semble être très perturbée ces derniers temps.

Configurer Firebase dans la console

Comme je l'ai mentionné ci-dessus, l'article précédent a couvert toutes les étapes de configuration de la base de données Firebase dans la console, vous pouvez simplement suivre cet article pour un récapitulatif rapide. Les points que vous devez suivre pour configurer Firebase sont :

  1. Créer un projet dans Firebase
  2. Configurer les règles de lecture et d'écriture pour les utilisateurs
  3. Déplacer vers l'utilisateur et les autorisations pour générer des clés API
  4. Téléchargez le fichier Json secret et enregistrez-le dans votre projet

Vous êtes maintenant prêt à intégrer PHP à Firebase.

Configurer le serveur PHP sur Cloudways

Étant donné que Cloudways fournit déjà la version PHP 7.x sur son hébergement pour les sites Web PHP, il vous suffit de vous inscrire et de lancer un serveur et tout le reste est préfabriqué sur la plate-forme. L'application sera configurée avec le serveur et vous pourrez y accéder via l'URL dans la page des détails d'accès

Vous devez vous occuper de certaines choses avant d'exécuter Firebase sur des serveurs PHP, vous devez avoir la version PHP>=7.0 disponible avec l'extension PHP mbstring.

Vous pourriez également aimer : Comment héberger PHP sur Amazon AWS EC2

Intégrer PHP avec Firebase

Firebase a une API géniale qui prend en charge la mise en œuvre dans différentes langues. Pour utiliser PHP avec Firebase, il fournit un package PHP complet que vous pouvez intégrer pour travailler avec Firebase. Dans cette application, j'utiliserai kreait/firebase-php qui est également recommandé par Firebase.

La méthode recommandée pour installer le SDK Firebase Admin est avec Composer. Composer est un outil de gestion des dépendances pour PHP qui vous permet de déclarer les dépendances dont votre projet a besoin et de les installer dans votre projet.

composer requiert kreait/firebase-php ^4.17.0

Vous pouvez également spécifier le SDK Firebase Admin en tant que dépendance dans le fichier composer.json existant de votre projet :

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

Après l'installation, vous devez exiger le chargeur automatique de Composer :

 

Créer une connexion avec Firebase

Une fois l'installation du package terminée et l'ajout de l'autolader au fichier PHP, vous pouvez ensuite créer une connexion avec Firebase à l'aide du fichier secret téléchargé depuis la console. Vous devez transmettre l'URL de ce fichier dans la méthode ServiceAccount ::fromJsonFile(). Deuxièmement, recherchez l'URL de l'application Firebase.

withDatabaseUri('https ://my-project.firebaseio.com')   ->create();$database =$firebase->getDatabase();

Maintenant, à ce moment-là, lorsque vous faites var_dump($database); vous verrez l'objet de base de données complet renvoyé par Firebase sur l'écran de votre navigateur.

Créer une classe d'utilisateurs dans Users.php

La prochaine chose que je ferai est de créer un nouveau fichier appelé Users.php et d'y déclarer une classe User. La classe contiendra un constructeur dans lequel je créerai une connexion de PHP avec l'API Firebase et l'initialiserai. Après cela, j'obtiendrai la base de données créée dans firebase.

public function __construct(){       $acc =ServiceAccount::fromJsonFile(__DIR__ . '/secret/php-firebase-7f39e-c654ccd32aba.json'); $firebase =(nouvelle usine)->withServiceAccount($acc)->create(); $this->database =$firebase->getDatabase(); } 

Maintenant, pour créer des fonctions PHP CRUD pour manipuler la base de données, je vais créer des méthodes distinctes pour chaque cas d'utilisation. Mais créons d'abord deux autres propriétés en dehors du constructeur qui contient le nom de la base de données

protected $database ; protected $dbname ='users';

Créons maintenant une méthode get() pour récupérer les données. Il contiendra l'ID utilisateur pour récupérer un enregistrement d'utilisateur spécifique. La méthode vérifiera également si l'ID utilisateur n'est pas disponible ou défini, dans le cas contraire, il renverra false. Alors que si trouve l'ID correctement défini, récupérera la valeur avec succès.

public function get(int $userID =NULL){          if (empty($userID) || !isset($userID)) { return FALSE ; }       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){           return $this->database->getReference($this->dbname)-> getChild($userID)->getValue(); } sinon {           retourne FAUX ; }   } 

Dans la méthode insert(), je vais passer le tableau de données car il peut contenir une ou plusieurs données. Alors que si les données sont déjà disponibles pour l'ID utilisateur spécifique, elles mettront à jour celles existantes.

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

Maintenant, je vais créer une fonction delete() qui aura userID comme paramètre. L'ID sera validé s'il est défini, puis la méthode remove() supprimera les données.

public function delete(int $userID) {       if (empty($userID) || !isset($userID)) { return FALSE ; }       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){           $this->database->getReference($this->dbname)->getChild ($userID)->supprimer(); renvoie VRAI ; } sinon {           retourne FAUX ; }   } 

La classe User complète sera la suivante :

withServiceAccount($acc)->create(); $this->database =$firebase->getDatabase(); }   public function get(int $userID =NULL){           if (empty($userID) || !isset($userID)) { return FALSE ; }       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){           return $this->database->getReference($this->dbname)-> getChild($userID)->getValue(); } sinon {           retourne FAUX ; }   }   public function insert(array $data) {       if (empty($data) || !isset($data)) { return FALSE ; }       foreach ($data as $key => $value){           $this->database->getReference()->getChild($this->dbname)->getChild($key)->set($value); }       renvoie VRAI ; }   public function delete(int $userID) {       if (empty($userID) || !isset($userID)) { return FALSE ; }       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){           $this->database->getReference($this->dbname)->getChild ($userID)->supprimer(); renvoie VRAI ; } sinon {           retourne FAUX ; }   }} ?>

Testons maintenant la classe. Essayez d'appliquer des méthodes et vérifiez la base de données Firebase qu'elle met à jour ou non. Commencez par initialiser la classe :

$users =nouveaux utilisateurs();

Insérons maintenant quelques données via la méthode insert() :

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

De même, vous pouvez obtenir ou supprimer des données comme celle-ci :

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

Vous pouvez donc voir comment j'ai construit une application CRUD de base en utilisant PHP et Firebase en créant une classe simple. Évidemment, vous pouvez l'étendre et créer quelque chose d'excitant selon les exigences.


Moins de tracas. Plus de développement.

Laissez-nous pérenniser vos besoins d'hébergement. Vous vous concentrez sur la création de vos applications.

Commencez gratuitement

Connecter Firebase avec le formulaire de contact PHP

Le formulaire de contact est un composant essentiel de tout site Web car il rassemble les messages et les requêtes des utilisateurs. Créons un simple formulaire de contact PHP et connectons-le à Firebase pour recevoir des messages. Cela comprendra le codage de base car cela vous donnera juste une idée de la façon de le connecter. J'utiliserai la même classe User.php et sa fonction insert() :

Le code de conception du formulaire de contact sera le suivant :

   Titre de la page               
       
           
               
                   
Contactez-nous
                             
                                  
                                                          
                      "name =" e-mail "type =" text "placeholder =" Votre e-mail "class =" form-control ">
                                                         
                                           
                                                        
                             ="message" name="message" placeholder="Veuillez entrer votre message ici..." rows="5">
soumettre
   

Maintenant, dans le fichier PHP, vous pouvez initialiser les espaces de noms et la classe User. Après cela, attrapez simplement les entrées et envoyez-les à la méthode insert() de Firebase. Il s'agit également d'un code de base, vous pouvez l'étendre selon vos exigences et règles de validation :

 insert([       'name' => $name,       'email' => $email,       'message' => $message   ]);}

Derniers mots

La technologie évolue à un rythme rapide. Pour être compétitif et rester dans la course, vous devez vous mettre à jour avec les changements. De même, les bases de données évoluent également fréquemment et nous pouvons voir aujourd'hui de nombreux services fournissant une base de données en temps réel, traitant les données en un rien de temps.

Dans cet exemple PHP Firebase, je vous ai montré comment intégrer PHP à Firebase et le connecter à un formulaire de contact avec une classe simple. Une fois la connexion établie, vous pouvez créer des cas d'utilisation plus complexes pour utiliser les services Firebase. J'écrirai également plus sur Firebase avec PHP plus tard.

Questions fréquemment posées

Q :Puis-je utiliser Firebase avec PHP ?

R :Oui, Firebase fournit une API complète pour intégrer la plate-forme à vos projets PHP.

Q :Puis-je héberger PHP sur Firebase ?

R :Non, Firebase ne prend en charge que l'hébergement statique et, par conséquent, vous ne pouvez pas héberger de scripts PHP sur Firebase.

Q :Comment puis-je obtenir des données d'une base de données Firebase à l'aide de PHP ?

Pour obtenir les données Firebase, vous devez vous rendre dans le dossier du projet et exécuter la commande :

php composer.phar requiert kreait/firebase-php

Ensuite, un nouveau index.php dans le dossier du projet et ajoutez la ligne suivante en haut de index.php :

require DIR.'/vendor/autoload.php';

Ensuite, créez un fichier JSON dans le dossier

Modifiez le fichier index.php et créez une connexion à la base de données.