Scroll to top
17 min read

German (Deutsch) translation by Władysław Łucyszyn (you can also view the original English article)

Es ist nicht zu leugnen, dass unsere Branche unglaublich schwierig ist. Überhaupt in Betracht gezogen, eine zweite Sprache zu lernen? Nun, wie wäre es mit fünf? Das wird von Ihnen verlangt, wenn Sie beabsichtigen, ein moderner Webentwickler zu werden. In Anbetracht dessen, wenn Sie nicht vorsichtig sind, werden Sie sehr schnell überwältigt sein, wenn Sie blind auf zahllose verwirrende Blogartikel oder technische Bücher starren.

Der Schlüssel ist, wie bei allem, ein Schritt nach dem anderen.

Der Schlüssel ist, wie bei allem, ein Schritt nach dem anderen. Würden Sie sich selbst dafür verantwortlich machen, dass Sie in einem Monat keine gesprochene Sprache gelernt haben? Natürlich nicht. Dann wenden Sie das gleiche Niveau des Denkens auf Ihre Programmierreise an. Diese Dinge brauchen Zeit, aber solange du weiter nach vorne treibst, bist du in kürzester Zeit da. Hör nicht auf!

Der erste Schritt ist HTML. Verstehen Sie, welchem Zweck ein <div> dient. Erfahren Sie, wie Sie Inhalte mit semantischen Tags strukturieren. Erstellen Sie eine einfache, nicht gestartete Webseite.

Der zweite Schritt ist, wie Sie vielleicht vermutet haben, CSS. Erfahren Sie, wie Sie Elemente auf der Seite stylen. Schätzen Sie, worauf sich die Trennung von Bedenken bezieht und wie dies für Ihr HTML und CSS gilt. Vervollständige deine erste einfache Webseite.

Schritt drei ist, wenn Entwickler beginnen, in ihre eigenen Spezialitäten abzuzweigen. An dieser Stelle könnten Sie in die Welt von JavaScript eintauchen, die wie nie zuvor boomt. Oder Sie können sich stattdessen auf das Backend konzentrieren.

Verwirrt durch den Unterschied zwischen Frontend und Backend? Stellen Sie sich das Frontend als die Spitze des Eisbergs vor, der die Titanic zum Einsturz brachte. Es ist der Teil der Anwendung, der für den Benutzer sichtbar ist und mit dem interagiert werden kann. Das Backend andererseits behandelt alles von Persistenz über Validierungen bis hin zu Routing.

Nehmen wir für die Zwecke dieses Artikels an, dass Sie die letztere Option gewählt haben; die Server-Seite ist es!

Es ist nicht zu leugnen, dass PHP das Web dominiert.

Leider, noch einmal, Sie kommen auf eine Handvoll Wege zu nehmen. Sollten Sie die beliebteste Option wählen - PHP? Was ist mit Ruby? Die coolen Kids scheinen das heutzutage zu bevorzugen. Andererseits, was ist, wenn du einen Bart hast? Ist Python die richtige Wahl? Am wichtigsten ist jedoch, wie könnten Sie eine Auswahl treffen, wenn Sie keine Erfahrung haben?

In solchen Situationen - und nach Meinung des Autors - gibt es keine falsche Wahl. Und sicher, es gibt nichts, was Ihnen verbietet, die Straße runter zu schalten. In der Tat werden alle Entwickler ermutigt, mehrere Sprachen zu lernen! Für jetzt jedoch ist der Schlüssel, nur einen zu wählen und es gut zu lernen.

Es stimmt zwar, dass PHP nicht die schönste Sprache ist, aber es ist nicht zu leugnen, dass es das Web dominiert. In der Tat ist es die weltweit beliebteste Skriptsprache. Der Vorteil ist, dass Sie sicher sein können, dass jede PHP-Frage bereits gestellt, gelöst und dokumentiert wurde. Es ist beruhigend, das zu wissen. Obwohl Sie sich in der fragilsten Phase Ihres Lernens befinden, steht Ihnen eine große, freundliche Gemeinschaft zur Seite, die bereit ist zu helfen. Noch besser: PHP erlebt dank Tools wie Composer und Laravel eine moderne Renaissance wie nie zuvor.


Was ist PHP?

PHP, ein Akronym für PHP: Hypertext Preprocessor (ja, Entwickler lieben ihre rekursiven Witze), ist eine Skriptsprache, die speziell für das Web entwickelt wurde. Die Chancen stehen aber hoch, dass Ihnen das noch nichts bedeutet. Skriptsprache? Hä? Wann würden Sie PHP über einfaches HTML erreichen? Nun, vielleicht ist ein Beispiel in Ordnung. Angenommen, Sie haben PHP erfolgreich installiert, erstellen Sie eine index.php-Datei in einem neuen Ordner auf Ihrem Desktop und fügen Sie Folgendes hinzu:

1
<?php
2
3
echo 'Hello world';

Ja, es ist das allgegenwärtige "Hallo Welt" -Beispiel, mit dem Sie vertraut werden werden, wenn Ihre Fähigkeiten Fortschritte machen. Jede Sprache / jedes Framework / Tool hat eins!

Verwenden Sie den integrierten PHP-Server, um diesen Code auszuführen. Wechseln Sie zu Ihrem bevorzugten Befehlszeilenprogramm (Terminal, für Mac-Benutzer), cd Sie in den Projektordner und booten Sie den Server mit php -S localhost: 8888. Dieser Befehl wird wie folgt übersetzt: "Führen Sie einen Server aus und stellen Sie ihn über den lokalen Porthost 8888 in meinem Browser zur Verfügung." Probieren Sie es aus! Öffnen Sie Google Chrome, navigieren Sie zu localhost:8888, und auf der Seite sehen Sie "Hello world *". Flott! echo ist ein Sprachkonstrukt, das nur einen gegebenen Wert ausgibt.

Tipp: MAMP und WAMP sind hervorragende Ein-Klick-Lösungen für die Installation von PHP, MySQL und Apache auf Ihrem Mac oder PC, ohne dass Sie mit der Befehlszeile herumhantieren müssen. Sie können hilfreiche Entscheidungen in den frühen Phasen Ihres Lernens sein.

WampServer ist eine Entwicklungsumgebung, die eine Ein-Klick-Installation von PHP, Apache und MySQL ermöglicht.

Zugegeben, das ist nicht die aufregendste Sache der Welt. In der Tat, Sie denken wahrscheinlich an sich selbst: "Warum konnte ich nicht 'Hallo Welt' direkt in die HTML-Seite schreiben und die Notwendigkeit für PHP alle zusammen entfernen?" Das ist wahr; Für dieses Beispiel hat es keinen Zweck. Eine Skriptsprache wie PHP wird jedoch besonders nützlich, wenn die Ausgabe dynamisch sein soll. Was ist, wenn die Begrüßung anstelle der Welt auf einen Wert verweisen soll, der über die Querystring der URL (der Text in der Adressleiste, der nach dem Fragezeichen steht) übergeben wird? Hier ist ein aktualisiertes Beispiel, das genau das erreicht!

1
<?php
2
3
echo 'Hello, ' . $_GET['person'];

Ahh, das führt ein paar neue Techniken ein. Erstens, die einzelne Periode, die die Zeichenfolge Hello und das verwirrende $_GET trennt, ermöglicht es Ihnen, Werte zu verketten (oder zu gruppieren). In diesem Fall möchten wir "Hello, *" und dann den Wert $_GET['person'] ausgeben. Dies bezeichnen wir als ein super-globales Array. Betrachten Sie dies der Einfachheit halber als Möglichkeit, einen *GET aus der Querystring der URL zu erhalten.

Testen Sie dies durch Laden von localhost:8888/?Person=Joe. Bei richtiger Konfiguration sollte die Webseite jetzt "Hallo, Joe" anzeigen. Spielen Sie damit herum und ersetzen Sie Joe durch Ihren eigenen Namen. Beachten Sie, wie die Ausgabe jedes Mal aktualisiert wird, wenn die Seite aktualisiert wird? Dies wäre mit statischem HTML einfach nicht möglich.

Einer der Schlüssel zur ausgereiften Programmierung ist die Betrachtung aller möglichen Pfade durch Ihren Code. Was ist zum Beispiel, wenn kein Personenschlüssel verfügbar ist? Möglicherweise wurde die Abfragezeichenfolge vollständig weggelassen. In diesem Fall wird sicherlich ein Fehler ausgelöst, da der Personenschlüssel nicht existiert. Was ist die Lösung? Obwohl es sich dabei um ein einfaches Beispiel handelt, ist es dennoch wichtig, alle möglichen Ergebnisse zu berücksichtigen. Lassen Sie uns einen Standard angeben.

1
<?php
2
3
if (isset($_GET['person'])) {
4
    $person = $_GET['person'];
5
} else {
6
    $person = 'Joe';
7
}
8
9
echo 'Hello, ' . $person;

Obwohl es dafür mehrere Möglichkeiten gibt, ist das obige Beispiel ein ausgezeichneter Ausgangspunkt. Es ist auch Ihre erste Einführung in bedingte Anweisungen. Nähern Sie Ihren Code auf die gleiche Weise, wie Sie mit Szenarien im wirklichen Leben umgehen würden. Zum Beispiel: "Wenn wir keine Milch mehr haben, dann geh zum Laden. Ansonsten bleib zu Hause." Diese Denkrichtung könnte mit der folgenden Logik in PHP übersetzt werden:

1
$outOfMilk = true;
2
3
if ($outOfMilk) {
4
    echo 'Going out to the store.';
5
} else {
6
    echo 'Breakfast is served.'
7
}

In diesem Codebeispiel wird nur eine einzelne Textzeile auf dem Bildschirm gedruckt. Der Wert der Variablen (ein dynamischer Wert), $outOfMilk, bestimmt den Kontrollfluss.

Tipp: Um Variablen in PHP zu deklarieren, müssen Sie jedem Namen ein Dollarzeichen voranstellen. Als bewährte Methode wählen Sie lesbare Variablennamen gegenüber kryptischen Alternativen.

Kehren wir zu dem vorherigen Beispiel zurück, solange $_GET['person'] gesetzt ist (man denke an einen Pseudonamen für "ist verfügbar"), dann erstellen Sie eine neue $person-Variable, die ihrem Wert entspricht. Andernfalls wenden Sie einen Standardwert an. Wenn Sie zum Browser zurückkehren, sollte es jetzt ordnungsgemäß funktionieren, unabhängig davon, ob der Personenschlüssel in der Abfragezeichenfolge vorhanden ist.

Sicherheit

Leider sind wir immer noch nicht frei Haus. Eine bewährte Vorgehensweise bei der Programmierung besteht darin, die Sicherheit bei jeder Aktion in den Vordergrund zu stellen. Selbst mit diesem unglaublich einfachen Beispiel haben wir die Tür zu einem der am weitesten verbreiteten Sicherheitsprobleme im Internet geöffnet: XSS (Cross-Site Scripting). Ein richtiges Verständnis davon ist absolut nicht in den Rahmen dieser einführenden Lektion (es wurden ganze Bücher darauf geschrieben), aber hier ist eine grundlegende Illustration: Was ist, wenn $_GET['person'] gleich ist, keine Zeichenkette, sondern a Skript?

1
http://localhost:8888/?person=<script>alert('ATTACK!')</script>

Da dieser Wert nicht bereinigt wurde, wird bei der Ausführung in einigen Browsern eine Warnmeldung angezeigt.

Webkit-basierte Browser (wie Chrome und Safari) bieten jetzt Schutz gegen diese Arten von Angriffen. Dies war jedoch nicht immer der Fall und ist immer noch nicht in Firefox und Internet Explorer.

Huch! Das können wir nicht haben. Während die moderne Gesellschaft diktiert, dass ein Mann unschuldig ist, bis seine Schuld bewiesen ist, gilt das Gleiche nicht für die Programmierwelt. Alle Benutzereingaben sind bis zur Bereinigung schuldig! Hier ist ein aktualisiertes Beispiel, das genau das tut:

1
<?php
2
3
if (isset($_GET['person'])) {
4
    $person = $_GET['person'];
5
} else {
6
    $person = 'Joe';
7
}
8
9
echo 'Hello, ' . htmlspecialchars($person, ENT_QUOTES);

Sollte jemand mit dieser Modifikation einen XSS-Angriff versuchen, sind wir bereit! htmlspecialchars ist eine native PHP-Funktion, die verschiedene Symbole in ihre Entity-Counter-Parts übersetzt. & becomes &amp;< becomes &lt;, etc. Dies macht es zum perfekten Werkzeug, um ein bisschen mehr Sicherheit zu bieten. <script> ist bedeutungslos, wenn es in &lt;script&gt; vor der Ausführung.  Der Benutzer sieht einfach:

1
Hello, <script>alert('ATTACK!')</script>

Groß; keinen Schaden angerichtet!


Funktionen

Während PHP mit einer Fülle von nativen Funktionen ausgeliefert wird, wird es sicherlich Zeiten geben, wenn Sie Ihre eigenen benötigen. Zum Glück sind sie ein Kinderspiel zu schreiben.

Stellen Sie sich eine Funktion als eine wiederverwendbare Logik vor, die abstrahiert werden kann, sodass sie unter Verwendung eines lesbaren Namens identifiziert und aufgerufen werden kann.

Vielleicht betreiben Sie einen Nachtclub (nicht wahrscheinlich, wenn Sie dies lesen!), Und brauchen eine einfache Möglichkeit, das Geburtsdatum einer Person zu akzeptieren und zu berechnen, ob sie mindestens einundzwanzig Jahre alt ist. Eine benutzerdefinierte Funktion wäre eine hervorragende Möglichkeit, diese Aufgabe zu erfüllen.

Der erste Schritt besteht darin, eine neue Funktion namens isAdult zu definieren. Funktionen können externe Eingaben akzeptieren, die dann bearbeitet werden können. Dies ermöglicht, dass die zurückgegebenen Daten von der Funktion dynamisch sind. In diesem Fall müssen wir, um festzustellen, ob eine Person ein Erwachsener ist, ihr Geburtsjahr kennen. Der letzte Schritt besteht darin, entweder true oder false zurückzugeben, abhängig davon, ob das aktuelle Jahr abzüglich des Geburtsdatums der Person mindestens einundzwanzig ist.

1
function isAdult($yob) {
2
    $currentYear = 2013;
3
4
    return $currentYear - $yob >= 21;
5
}

Es ist wirklich ganz einfach! Jetzt müssen wir es nur an den Türsteher weitergeben. Eine Funktion kann ausgelöst oder aufgerufen werden, indem auf ihren Namen verwiesen wird, gefolgt von einem Satz Klammern: isAdult(). Wenn die Funktion jedoch ein Argument erfordert, können Sie es wie folgt in diesen Klammern angeben:

1
if (isAdult(1985)) {
2
    echo 'Come on in!';
3
} else {
4
    echo 'Please leave now, before I call your mother.';
5
}

Es gibt ein eklatantes Problem mit dieser isAdult Funktion. Das laufende Jahr wurde fest codiert. Sicher, es wird das ganze Jahr über funktionieren, aber was ist mit dem nächsten Jahr? Es scheint, dass auch dieser Wert dynamisch sein muss. PHP bietet eine date funktion, mit der das aktuelle Jahr berechnet werden kann. Daher kann die Funktion aktualisiert werden auf:

1
function isAdult($yob) {
2
    $currentYear = date('Y');
3
4
    return $currentYear - $yob >= 21;
5
}

Arrays

Vor ein paar Monaten, und jetzt geht es dem Nachtclub besser als je zuvor. Tatsächlich geht es so gut, dass der Türsteher nicht mithalten kann. Sein Job könnte einfacher sein, wenn er stattdessen durch eine Gruppe von Menschen gleichzeitig filtern könnte.

Stellen Sie sich ein Array als einen Container für verwandte Daten vor. Man könnte es sogar als Liste bezeichnen: eine Liste von Tweets, eine Gruppe von Familienmitgliedern, eine Reihe von Geburtsdaten.

Ein Array in der neuesten Version von PHP (5.4) kann mit einer durch Kommas getrennten Liste in Klammern definiert werden:

1
$group = [1985, 1990, 1992, 1997];

Diese einzelne $group-Variable enthält jetzt mehrere Geburtsdaten. Auf die darin enthaltenen Werte kann über einen Index zugegriffen werden, z. B. $group[0]. Arrays bezeichnen wir als nullbasiert. In der Übersetzung bedeutet dies, dass das erste Element oder der Schlüssel im Array einen Index von Null hat. Um auf den Wert von 1992 zuzugreifen, würden Sie also auf $group[2] verweisen.

Jetzt kann der Türsteher diese Geburtsdaten schnell durchfiltern und berechnen, ob er der Person erlaubt oder sie ablehnt. Eine foreach Anweisung kann für diese Art der Filterung verwendet werden.

1
$group = [1985, 1990, 1992, 1997];
2
foreach($group as $yob) {
3
    if (isAdult($yob)) {
4
        echo 'Come on in!';
5
    } else {
6
        echo 'Please leave now, before I call your mother.';
7
    }
8
}

Beachten Sie, wie der Rausschmeißer erklärt, dass das Geburtsjahr foreach Person in der group in der Variablen $yob enthalten sein sollte. Als Nächstes übergibt er diesen Wert an die Funktion isAdult und fährt entsprechend fort.

Es ist jedoch möglich, dass der Türsteher verwirrt wird, wenn er keine Verbindung zwischen dem Geburtsjahr und dem Namen der Person hat. PHP ermöglicht auch assoziative Arrays, die die erforderliche Funktionalität bereitstellen, um einen bestimmten Wert mit einem Schlüssel zu verknüpfen. Hier ist ein Beispiel:

1
$group = [
2
    'John'  => 1985,
3
    'Susan' => 1990,
4
    'Joe'   => 1992,
5
    'Sara'  => 1997
6
];

Das ist besser. Als zusätzlicher Bonus kann der Türsteher ein bisschen freundlicher zu der Person sein, jetzt, wo er seinen oder ihren Namen kennt.

1
$group = [
2
    'John'  => 1985,
3
    'Susan' => 1990,
4
    'Joe'   => 1992,
5
    'Sara'  => 1997
6
];
7
8
foreach($group as $name => $yob) {
9
    if (isAdult($yob)) {
10
        echo "Come on in, $name!";
11
    } else {
12
        echo "Please leave now, $name, before I call your mother.";
13
    }
14
}

Wenn Sie Zeichenfolgen in Anführungszeichen speichern, können Sie Variablen verschachteln, anstatt die Verkettung zu verwenden. Dies kann sich für eine besser lesbare Syntax eignen.


Klassen

Die objektorientierte Programmierung geht weit über den Rahmen dieses Tutorials hinaus, dennoch sollten die Klassen erwähnt werden. Betrachten Sie sie zunächst als einfache Container für verwandte Eigenschaften und Methoden. Zum Beispiel könnte eine Klasse, die eine einzelne Person repräsentiert, folgendermaßen aussehen:

1
class Person {
2
    public $name;
3
    public $age;
4
5
    public function __construct($name, $age)
6
    {
7
        $this->name = $name;
8
        $this->age = $age;
9
    }
10
}

Beachten Sie, dass __construct() -Methode? Dies wird als magische Methode bezeichnet und wird sofort nach der Instanziierung ausgelöst. Wenn diese Methode ausgelöst wird, akzeptiert sie einen Namen und ein Alter und hängt diese dann an das Objekt an.

Um diese Klasse zu verwenden, versuchen Sie Folgendes:

1
$me = new Person('Jeffrey', 28);

Dadurch wird eine neue Instanz der Person-Klasse erstellt. Diese Instanz, die in der Variablen $me gespeichert ist, kann als Objekt bezeichnet werden. Nun, es gibt nichts, was Sie davon abhält, mehrere Instanzen dieser Klasse zu erstellen - und tatsächlich werden Sie das auch in realen Projekten tun! Die Klasse ist nur eine Blaupause.

Zu diesem Zeitpunkt ist die Klasse jedoch nicht allzu nützlich. Fügen wir eine Methode oder Funktion hinzu, um den Ehepartner einer Person zu bestimmen.

1
class Person {
2
    public $name;
3
    public $age;
4
    public $spouse;
5
6
    public function __construct($name, $age)
7
    {
8
        $this->name = $name;
9
        $this->age = $age;
10
    }
11
12
    public function marry(Person $spouse)
13
    {
14
        $this->spouse = $spouse;
15
    }
16
}
17
18
$me = new Person('Jeff', 28);
19
$her = new Person('Allison', 28);
20
$me->marry($her);

Dieser geänderte Code enthält jetzt eine Methode marry(), die eine $spouse für das Objekt aktualisiert. Jetzt haben Sie eine direkte Verbindung zwischen den beiden Menschen.

Wenn einem Methodenargument ein Klassenname (Person $spouse) vorangestellt ist, der als Typhinweis bezeichnet wird, bedeutet dies, dass der Parameter eine Instanz der gegebenen Klasse sein muss oder dass ein Fehler ausgelöst wird.

Um den Namen meines Ehepartners zu erhalten, könnten Sie schreiben:

1
echo $me->spouse->name; // Allison

Das Konzept der objektorientierten Programmierung geht viel tiefer, bleibt aber zunächst einfach. Es hilft, Klassen als Singular Nomen zu betrachten: einen Tweet, einen Benutzer oder einen Kunden oder eine Datei.

Wahre Wertschätzung für dieses Muster wird nur mit der Zeit kommen.

Hands-On

Stellen Sie Ihre neu gefundenen Fähigkeiten auf die Probe. Wie könnten Sie Tweets für einen Benutzer auf der Seite registrieren und anzeigen? Nun, der erste Schritt könnte darin bestehen, eine Klasse zu definieren, die einen einzelnen Tweet repräsentiert. Diese Klasse sollte Eigenschaften für den Text des Tweets sowie sein Veröffentlichungsdatum speichern. Außerdem sollte sichergestellt werden, dass der Text des Tweets 140 Zeichen nicht überschreitet. Hier ist ein erster Stich in einer solchen Klasse:

1
class Tweet {
2
    public $body;
3
    public $pubDate;
4
5
    public function __construct($body)
6
    {
7
        $this->setBody($body);
8
        $this->setPubDate(new DateTime);
9
    }
10
11
    public function setBody($body)
12
    {
13
        if (strlen($body) > 140) {
14
            throw new InvalidArgumentException;
15
        }
16
17
        $this->body = $body;
18
    }
19
20
    public function setPubDate(DateTime $date)
21
    {
22
        $this->pubDate = $date->format('Y/m/d H:i:s');
23
    }
24
}

Auch wenn es anfänglich überwältigend erscheint, geben Sie diesem Codeausschnitt ein wenig Nachforschung und versuchen Sie zu verstehen, was bei jedem Schritt geschieht. Sie können feststellen, dass es gut lesbar ist!

Eine interessante neue Funktionalität ergibt sich aus der setBody-Methode. Wenn der bereitgestellte Text 140 Zeichen überschreitet, was wir mit der strlen-Funktion von PHP berechnen können, sollten wir eine Ausnahme machen, da dies die Regeln eines Tweets verletzt. Eine Ausnahme kann mit der Syntax ausgelöst werden, werfen Sie throw new ExceptionType.

Jetzt, da wir einen anständigen Container für einen Tweet haben, können wir ein paar Tweets erstellen, sie in einem Array speichern und sie schließlich auf der Seite mit einer foreach-Anweisung rendern.

1
$tweets = [];
2
3
# add two new tweets to the array

4
$tweets[] = new Tweet('Going to the store.');
5
$tweets[] = new Tweet('Back from the store!');
6
7
# Filter through, and display on page.

8
foreach($tweets as $tweet) {
9
    echo "<h2>{$tweet->body}</h2>";
10
    echo "<p>Posted on: {$tweet->pubDate}</p>";
11
}

Wenn Sie die Ausgabe im Browser anzeigen, sollten Sie Folgendes sehen:

Ausgezeichnet, aber wie speichern wir diese Tweets?


Lager

Bis jetzt haben Sie das Wesentliche gelernt: Variablen, Bedingungen, Funktionen, Arrays, Klassen. Es gibt noch mehr zu verdecken, aber Sie sollten das selbst untersuchen, je nach Bedarf. Der nächste Schritt in Ihrem Lernen ist Ausdauer. Wie könnten Sie beispielsweise alle Tweets protokollieren? Ein Tweet-Dienst, der Tweets nicht erinnert, ist ein schrecklicher! Dies ist, wenn die Idee der Datenbanken ins Spiel kommt.

Stellen Sie sich eine Datenbanktabelle als Excel-Tabelle vor. Es kann eine beliebige Anzahl von Feldern enthalten, z. B. Name, Alter oder Postanschrift der Person. Allerdings bietet PHP diese Art von Speicherung nicht nativ. Die am häufigsten verwendete Option ist MySQL, die weltweit populärste Open-Source-Datenbank.

Die Installation von MySQL fällt nicht in den Rahmen dieses Tutorials. Sehen Sie stattdessen in diesem Lernprogramm auf Nettuts + nach, um einen vollständigen Überblick zu erhalten.

Im Folgenden finden Sie ein vereinfachtes Beispiel, mit dem Sie mit dem sicheren Abrufen von Zeilen aus einer Datenbanktabelle beginnen können. Mach dir keine Sorgen, wenn es überwältigend scheint. MySQL ist deine zweite neue Sprache, die es zu lernen gilt. Die PDO-API von PHP sowie die Abfragesprache selbst benötigen Zeit zum Lernen.

Zuerst müssen Sie eine Verbindung zur Datenbank herstellen.

1
function connect() {
2
    $conn = new PDO(
3
        'mysql:host=localhost;dbname=DB_NAME',
4
        'USERNAME',
5
        'PASSWORD'
6
    );
7
8
    $conn->setAttribute(
9
        PDO::ATTR_ERRMODE,
10
        PDO::ERRMODE_EXCEPTION
11
    );
12
13
    return $conn;
14
}

PDO ist eine von PHPs drei verfügbaren APIs für die Verbindung mit einer MySQL-Datenbank.

Als nächstes fügen wir eine Hilfsfunktion hinzu, um alle Datensätze aus der Tweets-Tabelle zu holen. Achten Sie genau auf das Argument der query-Methode, SELECT * FROM Tweets. Dies ist eine spezielle Sprache für die Abfrage der Datenbank. In diesem Fall verwenden wir das Symbol *, um auf alle Zeilen zu verweisen. Daher wählen wir alle Zeilen aus der Tabelle aus, tweets genannt.

Diese Funktion bereitet die Abfrage vor und ruft dann die vollständige Ergebnismenge ab.

1
function fetchTweets($conn) {
2
    $stmt = $conn->query('SELECT * FROM tweets');
3
4
    return $stmt->fetchAll(PDO::FETCH_OBJ);
5
}

Jetzt müssen wir mit dem Bühnenbild nur die Funktionen entsprechend aufrufen.

1
# Connect to the DB

2
$conn = connect();
3
4
# Fetch all rows from attendees table

5
var_dump(fetchTweets($conn));

Eine einfache Möglichkeit, den Inhalt einer Variablen zu sichern, ist die Verwendung der Funktion var_dump.  Wenn Sie die Ausgabe von fetchTweets($conn) an diese Funktion übergeben, sehen Sie nach dem Anzeigen im Browser etwas in der Art von:

var_dump ist hilfreich beim Debuggen, aber für Produktionszwecke ist es besser, die Ergebnisse zu filtern und sie auf der Seite richtig darzustellen. Die foreach-Anweisung, mit der Sie bereits vertraut sind, wird den Job recht gut erledigen!

1
$tweets = fetchTweets($conn);
2
3
foreach($tweets as $tweet) {
4
    echo "<h2>{$tweet->body}</h2>";
5
    echo "<p>{$tweet->pubDate}</p>";
6
}

Fazit

Wie bei jeder Fähigkeit erfordert das Schreiben von flüssigem PHP nichts mehr als Ihre Zeit. Es kann Hunderte von Stunden dauern, bis man voll ist, aber das ist okay. Das macht Spaß, oder? Es sollte sein!

Der beste Weg zu lernen ist zu tun. Baue Projekte weg, wie sie aus der Mode kommen! Die in diesem Lernprogramm beschriebenen Techniken führen Sie durch die erste Phase. Wenn Sie jedoch Ihre Fähigkeiten weiterentwickeln, werden Sie mit fortgeschritteneren Themen wie PHP-Frameworks, Entwurfsmustern und testgetriebener Entwicklung fortfahren. Habe Spaß!

Vorgeschlagene Tuts+ Premium-Ressource