Skip to Content
2021PHP Einstieg

PHP Einstieg

Datum: Oktober 2021
Lesedauer: 8 Minuten


Nachdem ich mich nun exakt seit einem Monat mit der Sprache auseinandergesetzt habe, zeige ich auf, was PHP ist.

Geschichte

PHP (Hypertext Preprocessor) ist eine Skriptsprache, welche in der Webentwicklung eingesetzt wird. Die Syntax ist an C und Perl angelehnt. Rasmus Lerdorf hat diese im Jahre 1994 entwickelt, um die Erstellung von dynamische Webapplikationen zu ermöglichen. Letzten Monat hat die PHP Group die Version 7.4.24 der Software released.

Skriptsprache: Eine Skriptsprache ist eine Programmiersprache, welche nicht kompiliert, sondern bei Laufzeit interpretiert wird.

Rasmus Lerdorf: Der dänisch-kanadische Entwickler arbeitete bei IBM, Linuxcare, Yahoo und WePay. Seit 2012 arbeitet er bei Etsy, einer E-Commerce-Website. Zudem ist er ein Open-Source-Aktivist. Er entwickelte die ersten zwei Versionen von PHP.

Verwendung

PHP eignet sich ideal, um interaktive Webseiten zu realisieren. Die serverseitige Sprache kann man leicht ins HTML einbinden, um so die Webapplikation mit Funktionalitäten auszustatten. Zu den Funktionalitäten zählen:

  • Darstellung von dynamischem Inhalt
  • Einfache Auswertung von Formularen
  • Datenbank Anbindungen (MySQL, PostgreSQL, Oracle, Sybase, Informix und Microsoft SQL Server)
  • Session Tracking

Dies ermöglicht die Umsetzung von:

  • E-Commerce-Systeme
  • Chats
  • Foren

Vorteile

Zu den Vorteilen von PHP zählen:

  • Einfach zu lernen und implementieren
  • Gratis
  • Open Source
  • Plattformübergreifende Kompatibilität (Windows, Linux, UNIX und macOS)
  • Grosse Community (Es gibt viele Entwickler und viel Wissen)

Verbreitung

PHP wird laut W3Techs auf 78.7% aller Webseiten verwendet. Dies liegt auch daran, dass die Sprache von Content Management Systems, wie z.B. Wordpress, verwendet wird.

Projekte

Es ist nun klar, weshalb PHP verwendet wird. Doch bei welchen bekannten Projekten werden die Vorteile von PHP ausgenutzt?

Facebook

Die Facebook Plattform wurde mit PHP entwickelt. Genau genommen hat die Firma eine neue, auf PHP basierende, Sprache entwickelt (Hack). Diese erlaubt static und dynamic Type-Checking.

Static: Die Typen der Variablen sind beim Kompilieren schon bekannt.
Dynamic: Die Typen der Variablen werden erst bei Laufzeit erkannt.

Yahoo!

Auch die Suchmaschine Yahoo, die mehr als 7 Milliarden Aufrufe pro Monat generiert, verlässt sich auf PHP. Gerade bei komplexen Applikationen stellt sich also PHP als zuverlässig heraus.

WordPress

Das bekannteste Content Management System wurde ebenfalls mit PHP geschrieben.

Beliebtheit

Trotz den vielen Vorteilen und den einflussreichen Projekten eilt PHP kein hervorragender Ruf voraus. Die Programmiersprache wird als unsicher angesehen.

Dies liegt daran, dass fast jeder, in nur kurzer Zeit, eine PHP Applikation erstellen kann. Man braucht dazu nur sehr wenige Kenntnisse. Der Nachteil dabei ist, dass so auch schlechter Code entstehen kann, da die Sprache wenige Einschränkungen hat. Dadurch können Sicherheitsprobleme aufkommen.a Diese Gefahren können aber abgewendet werden. Schreibt man also einen guten Code, so ist eine PHP Seite sicher.

Probleme und ihre Vorbeugungen:


Inhalt momentan nicht verfügbar.


Setup

m PHP zu verwenden, muss PHP installiert sein oder von einem Webserver zu Verfügung gestellt werden.
Ich verwende MAMP .
Nach der Installation kann man die PHP Dateien im htdocs Ordner ablegen. So kann man die Webseite über den localhost erreichen.

Syntax

Hello World!

Die Syntax kann sowohl im Browser als auch in der Konsole ausgeführt werden.

Konsole

hello.php
<?php echo "Hello World!"; ?>
php hello.php

Browser

index.php
<html> <head> <title>PHP</title> </head> <body> <?php echo "Hello World!"; ?> </body> </html>

Einbetten

Es gibt zwei Möglichkeiten, um PHP einzubetten. Normalerweise verwendet man die PHP Ergänzung folgendermassen:

<?php foreach ($arr as &$value) { echo "<p>" . $value . "<p>"; } ?>

Manchmal ist es aber sinnvoll, nicht den ganzen PHP Block einzubinden. Deshalb kann man vom short echo tag gebrauch machen. Hierbei handelt es sich um eine verkürzte Schreibweise:

<?php foreach ($arr as $value): ?> <p><?= $value; ?></p> <?php endforeach; ?>

Variablendeklaration

PHP erlaubt folgende Datentypen:

  • String
  • Integer
  • Float
  • Boolean
  • Array
  • Object
  • Null
  • Resource

Einer Variable kann aber kein Datentyp explizit zugeteilt werden.

$name = "Kay"; echo $name;

Methoden

Funktionen werden mit dem Keyword function erstellt.

function volumen(int $laenge, int $breite=1, int $hoehe=1): float { return $lagenge * $breite * $hoehe; }

Argumente

Es gibt mehrere Arten, um die Argumente einer Funktion zu definieren.

Default

Wird beim Funktionsaufruf kein Wert mitgegeben, so wird die angegebene Zahl verwendet.

function testFunc(int $num = 5) {};
Nullable

Weist man dem Methodenparameter null zu. So muss beim Aufruf der Methode kein Attribut mitgegeben werden.

function testFunc(int $num = null) {};

Mit einem Fragezeichen kann man ein Wert empfehlen. Jedoch muss auch hier kein Attribut mitgegeben werden.

function testFunc(int ?$num) {};

Rückgabetypen

Bei Methoden kann der Typ des Rückgabewertes definiert werden.

function testFunc(): int {};

GET & POST

Es gibt zwei Arten, um vom Client Daten zum Webserver zu senden.

Thema$_GET$_POST
BeschreibungDie Methode sendet die Informationen angehängt an die Seitenanfrage. Beispiel: http://get.com/index.htm?name=wild&lastName=kay. Um diese zu verschlüsseln, müsste man den Query-String mit der encrypt() Methode verschlüsseln.Bei dieser Methode werden die Daten via HTTP Header gesendet. Sie sind nicht in der URL sichtbar.
Maximale Datenmenge1024 ZeichenKeine maximale Begrenzung (abhängig von Server und Client)
SicherheitVertrauenswürdige Daten dürfen nicht mitgeschickt werden. Die Sicherheit hängt vom HTTP-Protokoll ab. Mit HTTPS sind die Informationen sicher.Die Sicherheit hängt ebenfalls vom HTTP-Protokoll ab. Mit HTTPS sind die Informationen sicher.
Beispielget.php Beispiel (siehe Code unten)post.php Beispiel (siehe Code unten)
get.php
<?php if( $_GET["name"] || $_GET["age"] ) { echo "Welcome ". $_GET['name']. "<br />"; echo "You are ". $_GET['age']. " years old."; exit(); } ?> <html> <body> <form action = "<?php $_PHP_SELF ?>" method = "GET"> Name: <input type = "text" name = "name" /> Age: <input type = "text" name = "age" /> <input type = "submit" /> </form> </body> </html>
post.php
<?php if( $_POST["name"] || $_POST["age"] ) { echo "Welcome ". $_POST['name']. "<br />"; echo "You are ". $_POST['age']. " years old."; exit(); } ?> <html> <body> <form action = "<?php $_PHP_SELF ?>" method = "POST"> Name: <input type = "text" name = "name" /> Age: <input type = "text" name = "age" /> <input type = "submit" /> </form> </body> </html>

$_REQUEST

Die $_REQUEST Variable enthält GET, POST und Cookie Daten. Sie kann also genutzt werden, um das Resultat beider Methoden zu erhalten.

MySQL

Wie schon erwähnt, ermöglicht PHP ein enges Zusammenspiel mit Datenbanken.

DB verbinden

Eine Zeile reicht, um sich mit der DB zu verbinden.

connectToDB.php
$mysqli = new mysqli("url.com", "username", "password", "database");

Danach kann man die Daten bearbeiten, löschen, hinzufügen und holen.

Daten hinzufügen

$sql = " INSERT INTO sneaker (name, brands, model, colour, quantity, size, price, retail, releaseDate, artists, designers, athletes, img) VALUES ( 'Jordan 1', 'Nike', 'Jordan', 'White/Red/Black', NULL, '11', '80', '180', '2021-08-02', NULL, NULL, 'Michael Jordan', 'imgs/jordan-one.png', NULL); "; $this->mysqli->query($sql)

Daten laden

getData.php
$response = $this->mysqli->query("SELECT * FROM sneaker"); while ($row = $response->fetch_assoc()) { echo $row["name"] "<br>"; }

DB Verbindung schliessen

connectToDB.php
$this->mysqli->close();

OOP

PHP ermöglicht auch eine Objektorientierte Programmierung.

Klasse definieren

Eine Klasse wird wie folgt definiert:

<?php class Fahrzeug {} ?>

Variablen & Methoden

<?php class Fahrzeug { /* Eigenschaft */ private $geschwindigkeit = 0; /* Methode */ function ausgabe() { echo "Geschwindigkeit: $this->geschwindigkeit<br>"; } } ?>

Variablen und Methoden können verschiedene Sichtbarkeiten haben.

Sichtbarkeitprivateprotectedpublic
ErreichbarkeitNur innerhalb der KlassendefinitionNur innerhalb der Klasse erreichbar, in der sie erzeugt werden, und in davon abgeleiteten KlassenVon überall erreichbar

Instanziierung

Die Syntax, um Objekte zu instanziieren, sieht wie folgt aus.

$vespa = new Fahrzeug(); $vespa->ausgabe();

This

Um auf eine Variable der eigenen Klasse zuzugreifen, kann man this verwenden.

$this->geschwindigkeit = $ge;

Konstruktor & Dekonstruktor

Der Name des Konstruktors ist nicht derselbe wie der Klassenname. In PHP sieht er so aus.

Fahrzeug.php
function __construct($bz, $ge, $fa) { $this->bezeichnung = $bz; $this->geschwindigkeit = $ge; }
$tesla->__construct("Tesla", 10);

Beim Zerstören eines Objektes wird der Dekonstruktor ausgeführt.

function __destruct() { echo "Destruktor<br>"; }

Kopie & Referenz

Objekte können verschieden kopiert werden. Dies wird hier erläutert.

Referenz

Die Namen der Objekte, mit welchen man auf sie zugreifen kann, stellen nur eine Referenz dar.
Die Zuweisung eines Objekts zu einem anderen Namen erzeugt eine weitere Referenz zum selben Objekt.
Das Objekt kann dann über beide Referenzen verändert werden.

Kopie

Bei einer Kopie entsteht ein zweites Objekt. Dieses besitzt dieselben Eigenschaften und Werte.
Die Objekte werden aber individuell verändert.

clone

Dies ist ein Kopiervorgang, welcher mit clone durchgeführt werden kann. Mithilfe der __clone() Methode, kann der Vorgang angepasst werden.
Beim vordefinierten Klonen werden alle Eigenschaftswerte übernommen.

Serialisierung & Deserialisierung

Bei der Serialisierung wird eine Repräsentation des aktuellen Wertes einer Variable oder eines Objektes erzeugt. Diese Repräsentation kann dann gespeichert werden.

serial.php
include "Fahrzeug.php"; $vespa = new Fahrzeug("Vespa Piaggio", 25, "rot"); $s = serialize($vespa); file_put_contents("serializedClass.dat", $s); echo "Objekt serialisiert und in Datei gespeichert";

Wandelt man diese Repräsentation wieder um, nennt man dies Deserialisierung.

deserial.php
include "Fahrzeug.php"; if (!file_exists("serializedClass.dat")) { exit("Datei konnte nicht gefunden werden"); } $s = file_get_contents("serializedClass.dat"); $vespa = unserialize($s); echo "Objekt aus Datei gelesen und deserialisiert<br>"; echo $vespa;

Frameworks

Ein Framework bringt in der Regel folgende Vorteile mit sich.

  • Erleichtert die Entwicklung
  • Hilft beim entfernen von redundantem Code
  • Führt zu besserer Struktur
  • Macht eine Applikation sicherer
  • Fehler werden öfter verhindert

Es gibt einige PHP Frameworks. Dies sind 5 bekannte:

FrameworkBeschreibungStärken
SymfonySymfony ist ein MVC-Framework, das von bekannten CMS (Drupal, Joomla!, …) und E-Commerce-Systemen (Magento, PrestaShop, …) verwendet wird.Entwicklung von Projekten, Installation und die meisten Komponenten, Flexibilität, Integration mit grossen Unternehmen, Konfiguration auf den Plattformen, Verwendung von wiederverwendbaren Projekten wie Drupal
LaravelLaravel ist eines der bekanntesten gratis Open-Source-Frameworks. Es ermöglicht einen sicheren Umgang mit komplexen Applikationen. Das Framework hilft beim Einbauen von Authentifizierung, Caching, Sessions oder Routing.Viele Features, Sicherheit, Entwicklung von Applikationen mit komplexem Backend, Schnelligkeit
CodeIgniterDas kleine und kostenlose Framework hilft bei der Entwicklung von dynamischen Webseiten. Mit CodeIgniter können auch Komponenten erstellt werden.Schnelligkeit, Setup, klare Dokumentation, einfaches Erstellen von Webseiten und Komponenten
CakePHPCakePHP ermöglicht die Erstellung einer visuell ansprechenden Webseite. Es ist relativ einfach zu erlernen.Security L Injection Prävention, grossartige Dokumentation, einfache Installation, Features wie Validierung und XSS-Prävention
YiiYii ist ein komponentenbasiertes Framework, das ideal für die Entwicklung moderner Webapplikationen ist.Einfache Installation, robuste Sicherheitsfeatures, Schnelligkeit und Performance, Daten werden als Objekte verwendet, grosse Community, Erweiterbarkeit, einfach zu lernen

Fazit

PHP ist etwas verpönt, da es möglich ist, unsauberen und unsicheren Code zu schreiben.

Trotzdem ist PHP im Web äusserst verbreitet. Gerade die vielen Vorteile machen die Language interessant. Obwohl PHP eine der einfacheren Sprachen ist, ermöglicht sie die Erstellung von grossen und populären Webseiten.
Und mit der Version 8  wird die Sprache noch ansprechender.