Sprache:

Suche

Wie Eloquent das Leben der meisten PHP-Entwickler rettet

  • Teilen:
Wie Eloquent das Leben der meisten PHP-Entwickler rettet

Einführung von Eloquent


Wenn ihr noch nie den Duft von Laravels ORM Eloquent geschmeckt habt, dann ist dieser Artikel genau das Richtige für euch, glaubt mir. Ich nehme Sie mit auf eine verrückte Reise, beginnend mit der Erstellung von Abfragen voller Hürden wie im prozeduralen PHP, stoße auf das Abrufen von Daten auf die OO (objektorientierte) Art und Weise und bewege mich dann geradewegs auf die Genialität von Eloquent zu und Sie werden sehen, warum sich die meisten Entwickler in dieses Stück Großartigkeit verliebt haben, das Laravel in PHP gebracht hat.

 

Lesen Sie auch: Die wichtigsten Laravel-Interview-Fragen

Eintauchen

Beginnen wir also mit der Annahme, dass Sie Ihr Datenbankschema bereits eingerichtet haben, z.B. “testSchema” und sie enthält eine Tabelle, sagen wir “products”. Wir werden mit dieser Information in jedem Schritt herumspielen.

Wenn Sie dies lesen, dann bin ich mir sicher, dass die meisten von Ihnen zumindest eine gewisse Erfahrung in der Arbeit mit PHP haben, da dies nichts für Anfänger ist.

Verfahrenstechnisches PHP

Wie erstellt man also eine Datenbankverbindung in prozeduralem PHP?

Sie müssen sich einige obligatorische PHP-Funktionen merken, um eine Verbindung herzustellen und dann Abfragen an die Datenbank zu stellen. Einige dieser Funktionen sind:

mysqli_connect();
 mysqli_query();
 mysqli_fetch_assoc();
 mysqli_connect_error();

Und all ihre Parameter, was für die meisten Entwickler ziemlich störend und frustrierend ist. Lassen Sie uns also eine Verbindungsdatei erstellen und sehen, wie sie aussieht.

<?php 
$server_name = 'localhost';

$username = 'root';
$password = 'root';
$db_name = 'testSchema';

$connection = mysqli_connect($server_name,$username,$password, $db_name);

//check if its connected

if(mysqli_connect_error()) {
  $logMessage = 'MYSQL Error: . mysqli_connect_error();
  die('could not connect to the Database');}

//if connection successful, 
//query

$query = mysqli_query($connection,"SELECT * FROM products WHERE ID = $ID");
 
//fetch the information from the Database
$product = mysqli_fetch_assoc($query);
?>

Nun gut, das scheint so komplex zu sein, dass man jedes Mal, wenn man eine Verbindung zu einer Datenbank herstellen will, diese Menge an Code schreiben muss. Die nächste Frage, die sich den meisten Entwicklern stellt, ist: "Wird diese Sache mit OOP einfacher?" Nun, lassen Sie es uns selbst herausfinden.

Objektorientierter Weg

<?php
class Product
{
    public function __construct( mysqli $connection )
    {
        $this->connection = $connection;
    }

    public function get( $id )
    {
        return $this->connection
            ->query("SELECT * FROM products WHERE id = " . $id)
            ->fetch_assoc();
    }
}

# Usage --> Get Product by ID == $ID
$db = new mysqli('localhost','root','root','testSchema');

$product = new Product($db);
$product->get($ID);​

Ich bin sicher, dass diese Fahrt immer holpriger wird, je weiter Sie kommen. Aber ich versichere Ihnen, dass Sie mit dieser letzten Enthüllung, wie Eloquent die Daten aus der Datenbank abruft, sicherlich eine Erleichterung erfahren werden.

Eloquent Weg


 
1*LOeWhs-GCCU51kxAF4tfzw.png

Gehen wir davon aus, dass die Verbindung bereits eingerichtet wurde und unser Produktmodell in unserer Laravel-Anwendung konfiguriert ist, falls Sie damit etwas vertraut sind. Wir sehen uns einfach an, wie wir es aufrufen, um die erforderlichen Informationen abzurufen.

<?php 
 
$product = App\Product::find($ID);

Das war's, so einfach kann man es mit einer einzigen Zeile Code machen. Das ist das Schöne an Eloquent ORM, wo jede Datenbanktabelle ein entsprechendes "Modell" hat, das zur Interaktion mit dieser Tabelle verwendet wird. Modelle ermöglichen es Ihnen, Daten in Ihren Tabellen abzufragen und neue Datensätze in die Tabelle einzufügen.

Ich hoffe, dass Ihnen die Lektüre dieses Artikels gefallen hat. Wenn Sie mehr über Laravel und seine Funktionen wissen möchten, empfehle ich Ihnen, in Kontakt zu bleiben.

Sie können mir auch folgen auf Twitter.

Usama Muneer

Usama Muneer

A web enthusiastic, self-motivated & detail-oriented professional Full-Stack Web Developer from Karachi, Pakistan with experience in developing applications using JavaScript, WordPress & Laravel specifically. Loves to write on different web technologies with an equally useful skill to make some sense out of it.