Realtime gegevensbeheer en transacties zijn tegenwoordig de nieuwste manier van communiceren. Mensen hebben een snelle gegevensstroom nodig bij het gebruik van mobiele en webapplicaties. Er zijn veel diensten beschikbaar op internet voor het maken van realtime databases en communicatiesystemen. Pusher, Onesignal en Google's Firebase zijn daar bekende tools voor. Eerder heb je geleerd hoe je Firebase in Laravel kunt integreren en heb je de volgende onderwerpen behandeld:
- Firebase instellen en API-sleutels genereren.
- Integreren in Laravel
In dit PHP Firebase-voorbeeld geef ik je een korte samenvatting van het vorige artikel en laat ik je zien hoe je Firebase integreert in PHP 7.x, door eenvoudige CRUD-functies te creëren waarmee je databasemanipulatie kunt uitvoeren.
Integreer Firebase met PHP- Een kleine samenvatting van Firebase
- Waar wordt Firebase voor gebruikt?
- Firebase VS MySQL
- Voor- en nadelen van Firebase
- Firebase instellen in console
- PHP-server instellen bij Cloudways
- PHP integreren met Firebase
- Verbinding maken met Firebase
- Gebruikersklasse maken in Users.php
- Verbind Firebase met PHP-contactformulier
- Laatste woorden
Een kleine samenvatting van Firebase
Firebase is een realtime communicatieservice die realtime gegevensstromen biedt voor chat-, mobiele en webapplicaties. Het biedt verschillende realtime services, waaronder cloudberichten, auth-systemen, Firebase PHP-database, meldingssystemen, opslag en Firebase Hosting, waardoor het platform een complete overvloed aan tools en services biedt voor het ontwikkelen van hoogwaardige apps.
In dit artikel zal ik korte details van de Firebase-database bespreken. Firebase biedt eigenlijk een PHP realtime database en backend als een service. De service biedt ontwikkelaars een API waarmee applicatiegegevens kunnen worden gesynchroniseerd tussen clients die zijn opgeslagen in de Firebase-cloud. Dit elimineert de noodzaak van een relationeel databasesysteem op uw hostingserver, zoals MySQL en andere.
Waar wordt Firebase voor gebruikt?
Wanneer de gebruiker gegevens in een zeer snel tempo uit de database wil maken, genereren of ophalen, biedt Firebase realtime-services hen het gemak om bewerkingen uit te voeren zoals livestreaming, chatfunctie en meer. Het is een perfecte tool voor applicaties met grote databases zoals Lyft, Shazam, Alibaba enz.
Enkele belangrijke functies van Firebase zijn:
- Geen extra geld voor backend-server
- Snelle weergave van gegevens op de server
- NoSQL, wat betekent dat het sneller is
- Analyse
- Beveiligde en snelle hosting
- Machine-leerkit
- Verificatieservice voor gebruikersbeveiliging
- Cloudopslag
- Snelle synchronisatie van gegevens
Minder gedoe. Meer ontwikkeling.
Laat ons uw hostingvereisten toekomstbestendig maken. U concentreert zich op het bouwen van uw applicaties.
Begin gratisFirebase VS MySQL
Firebase is letterlijk anders dan traditionele databases zoals MySQL en slaat gegevens op in de vorm van documenten. Deze documenten kunnen in realtime worden gemanipuleerd in platformonafhankelijke media. MySQL is een relationele database die werkt met het sleutel->waardeconcept en relaties aangaat met verschillende gegevenssets.
Deze relaties worden vervolgens gebruikt voor datatransacties. MySQL mist het realtime datatransitieconcept en vereist zoveel werk om REST API's te maken.
Aan de andere kant biedt de Firebase-database verschillende platforms zoals Android, iOS en Web voor het maken van snelle API's. In principe is Firebase een hiërarchische gegevensstructuur, d.w.z. het is net als een JSON-boom in de cloud.
Firebase heeft het concept van sleutels, dit zijn de namen van de knooppunten waaronder u gegevens opslaat. Je zou ze op de een of andere manier kunnen vergelijken met de primaire sleutels van een relationele database, maar er is geen concept van een beheerde externe sleutel.
Ontvang nu uw VueJS-handboek
Voer eenvoudig uw e-mailadres in en ontvang de downloadlink in uw Postvak IN.
Bedankt
Je e-boek is onderweg naar je inbox.
Voor- en nadelen van Firebase
Onlangs kwam ik de Stack Exchange-vraag tegen over de voor- en nadelen van Firebase en die legt ze heel goed uit.
Pro's
- Als je app op een gecentraliseerde database draait en door veel gebruikers wordt bijgewerkt, is hij meer dan in staat om de realtime gegevensupdates tussen apparaten te verwerken.
- Opgeslagen in de cloud, dus overal beschikbaar.
- Cross Platform API (Als u deze database met een app gebruikt)
- Ze hosten de gegevens. Dit betekent dat als u veel gegevens opslaat, u zich geen zorgen hoeft te maken over hardware.
Nadelen:
- Tenzij uw app draait op één gecentraliseerde database die wordt bijgewerkt door een groot aantal gebruikers, is dit een grote overkill.
- De opslagindeling is geheel anders dan die van SQL (Firebase gebruikt JSON). Je zou dus niet zo gemakkelijk kunnen migreren.
- Rapporttools komen niet in de buurt van die van standaard SQL.
- Kosten – Beperkt tot 50 verbindingen en 100 MB opslagruimte.
- U host de gegevens niet, Firebase wel. Afhankelijk van welke server je krijgt, lijkt het bekijken van de up-time de laatste tijd veel storing te veroorzaken.
Firebase instellen in console
Zoals ik hierboven heb vermeld, heeft het vorige artikel alle stappen behandeld om de Firebase-database in de console in te stellen, je kunt dat artikel gewoon volgen voor een korte samenvatting. De punten die u moet volgen voor het instellen van Firebase zijn:
- Een project maken in Firebase
- Lees- en schrijfregels instellen voor gebruikers
- Verplaats naar gebruiker en machtigingen om API-sleutels te genereren
- Download geheim Json-bestand en sla op in je project
Nu bent u klaar om PHP met Firebase te integreren.
PHP-server instellen bij Cloudways
Aangezien Cloudways al PHP 7.x-versie biedt op zijn hosting voor PHP-websites, hoeft u zich alleen maar aan te melden en een server te starten en de rest komt vooraf op het platform. De applicatie wordt samen met de server ingesteld en u kunt deze openen via de URL op de pagina met toegangsdetails
U moet een paar dingen regelen voordat u Firebase op PHP-servers uitvoert, namelijk dat u een PHP>=7.0-versie beschikbaar moet hebben met de mbstring PHP-extensie.
Misschien vind je dit ook leuk: PHP hosten op Amazon AWS EC2
PHP integreren met Firebase
Firebase heeft een geweldige API die implementatie in verschillende talen ondersteunt. Voor het gebruik van PHP met Firebase biedt het een compleet PHP-pakket dat u kunt integreren om met Firebase te werken. In deze toepassing zal ik kreait/firebase-php . gebruiken wat ook door Firebase wordt aanbevolen.
De aanbevolen manier om de Firebase Admin SDK te installeren is met Composer. Composer is een afhankelijkheidsbeheertool voor PHP waarmee u de afhankelijkheden die uw project nodig heeft kunt aangeven en in uw project kunt installeren.
componist vereist kreait/firebase-php ^4.17.0
U kunt ook de Firebase Admin SDK specificeren als een afhankelijkheid in het bestaande bestand composer.json van uw project:
{ "require":{ "kreait/firebase-php":"^4.17.0" }}
Na de installatie heeft u Composer's autoloader nodig:
Verbinding maken met Firebase
Nadat de pakketinstallatie is voltooid en de autolader aan het PHP-bestand is toegevoegd, kunt u een verbinding maken met Firebase met behulp van het geheime bestand dat is gedownload van de console. U moet de URL van dat bestand doorgeven in de ServiceAccount::fromJsonFile()-methode. Zoek vervolgens de URL van de Firebase-toepassing.
withServiceAccount($serviceAccount) ->withDatabaseUri('https://my-project.firebaseio.com') ->create();$database =$firebase->getDatabase();Nu op dit moment wanneer u var_dump($database) doet; u ziet het volledige database-object dat door de Firebase is geretourneerd op uw browserscherm.
Gebruikersklasse aanmaken in Users.php
Het volgende dat ik zal doen, is het maken van een nieuw bestand met de naam Users.php en daarin een gebruikersklasse declareren. De klasse zal een constructor bevatten waarin ik een verbinding van PHP met Firebase API zal maken en deze zal initialiseren. Daarna zorg ik ervoor dat de database in firebase wordt gemaakt.
publieke functie __construct(){ $acc =ServiceAccount::fromJsonFile(__DIR__ . '/secret/php-firebase-7f39e-c654ccd32aba.json'); $firebase =(nieuwe fabriek)->withServiceAccount($acc)->create(); $this->database =$firebase->getDatabase(); }Om nu PHP CRUD-functies te maken om de database te manipuleren, zal ik voor elke use-case afzonderlijke methoden maken. Maar laten we eerst nog twee eigenschappen maken buiten de constructor die de databasenaam bevat
beveiligde $database; beschermd $dbname ='gebruikers';Laten we nu een methode get() maken om de gegevens op te halen. Het bevat de gebruikers-ID om een specifiek gebruikersrecord op te halen. De methode controleert ook of de gebruikers-ID niet beschikbaar of ingesteld is, in dat geval wordt false geretourneerd. Als blijkt dat de ID correct is ingesteld, wordt de waarde met succes opgehaald.
publieke functie 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(); } else { retour ONWAAR; } }Binnen de methode insert() geef ik de reeks gegevens door omdat deze enkele of meerdere gegevens kan bevatten. Als de gegevens al beschikbaar zijn voor de specifieke gebruikers-ID, wordt de bestaande bijgewerkt.
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); } retour WAAR; }Nu zal ik een delete()-functie maken die userID als parameter zal hebben. De ID wordt gevalideerd als deze is ingesteld, waarna de methode remove() de gegevens verwijdert.
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 ($gebruikers-ID)->verwijder(); WAAR retourneren; } else { retour ONWAAR; } }De volledige gebruikersklasse ziet er als volgt uit:
withServiceAccount($acc)->create(); $this->database =$firebase->getDatabase(); } openbare functie 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(); } else { retour ONWAAR; } } 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); } retour WAAR; } 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 ($gebruikers-ID)->verwijder(); WAAR retourneren; } else { retour ONWAAR; } }}?>Laten we nu de klas testen. Probeer methoden toe te passen en controleer de Firebase-database die wordt bijgewerkt of niet. Initialiseer eerst de klas:
$users =nieuwe gebruikers();Laten we nu wat gegevens invoegen via de insert()-methode:
$users =new Users();//var_dump($users->insert([// '1' => 'John',// '2' => 'Doe',// '3' => 'Smith'//]));Op dezelfde manier kunt u gegevens als volgt ophalen of verwijderen:
var_dump($users->get(1));var_dump($users->delete(2));U kunt dus zien hoe ik een eenvoudige CRUD-toepassing heb gebouwd met PHP en Firebase door een eenvoudige klasse te maken. Uiteraard kun je het uitbreiden en iets spannends creëren volgens de vereisten.
Minder gedoe. Meer ontwikkeling.
Laat ons uw hostingvereisten toekomstbestendig maken. U concentreert zich op het bouwen van uw applicaties.
Begin gratis
Verbind Firebase met PHP-contactformulier
Het contactformulier is een essentieel onderdeel van elke website omdat het berichten en vragen van gebruikers verzamelt. Laten we een eenvoudig PHP-contactformulier maken en dit verbinden met Firebase om berichten te ontvangen. Dit omvat basiscodering, omdat het u slechts een idee geeft hoe u het moet aansluiten. Ik gebruik dezelfde klasse User.php en de functie insert() ervan:
De ontwerpcode van het contactformulier is de volgende:
Paginatitel form - <-9" > <-9" >verzenden Nu kunt u in het PHP-bestand de naamruimten en de gebruikersklasse initialiseren. Pak daarna gewoon de invoer en stuur ze naar de methode insert() van Firebase. Dit is ook een basiscode, u kunt deze uitbreiden volgens uw vereisten en validatieregels:
phprequire __DIR__.'/vendor/autoload.php';require 'Users.php';gebruik Kreait\ Firebase\ Factory;gebruik Kreait\ Firebase\ ServiceAccount;$users =new Users();if (isset($_POST['submit '])) { $naam =$_POST['naam']; $e-mail =$_POST['e-mail']; $bericht =$_POST['bericht']; $users -> insert([ 'name' => $name, 'email' => $email, 'message' => $message ]);}
Laatste woorden
De technologie evolueert in een snel tempo. Om competitief te zijn en in de race te blijven, moet je jezelf updaten met de veranderende. Op dezelfde manier evolueren databases ook regelmatig en we kunnen tegenwoordig veel services zien die realtime database bieden en gegevens op het nippertje verwerken.
In dit Firebase PHP-voorbeeld heb ik je laten zien hoe je PHP kunt integreren met Firebase en het kunt verbinden met een eenvoudig contactformulier. Nadat u succesvol verbinding hebt gemaakt, kunt u complexere use-cases maken om Firebase-services te gebruiken. Ik zal later ook meer schrijven over Firebase met PHP.
Veel Gestelde VragenV:Kan ik Firebase gebruiken met PHP?
A:Ja, Firebase biedt een uitgebreide API voor de integratie van het platform met uw PHP-projecten.
V:Kan ik PHP hosten op Firebase?
A:Nee, Firebase ondersteunt alleen statische hosting en daarom kunt u geen PHP-scripts hosten op Firebase.
V:Hoe kan ik met PHP gegevens uit een Firebase-database halen?
Om de Firebase-gegevens te krijgen, moet u naar de projectmap gaan en de opdracht uitvoeren:
php componist.phar vereist kreait/firebase-php
Vervolgens een nieuwe index.php naar de projectmap en voeg de volgende regel toe bovenaan index.php:
DIR vereist.'/vendor/autoload.php';
Maak vervolgens een JSON-bestand in de map
Bewerk de index.php en maak een verbinding met de database.