2.7 KiB
Filmdatenbank mit PHP und Twig
📆 Fällig: 17.12.2023 📆
Ziel dieser Übung ist es, bei der Filmdatenbank aus der letzten Übung zu einer besseren Trennung von PHP und HTML-Code zu kommen. Hierzu wird die Template-Sprache Twig eingesetzt.
Lernziele
- Serverseitige Programmierung mit PHP
- Grundlegende PHP Sprach- und Kontrollstrukturen
- Einbinden von Bibliotheken mit
composer
- Verwendung einer Template-Sprache
Teil 1: Twig einbinden
Kopieren Sie Ihre vorhergehende Version der Filmdatenbank und binden Sie Twig ein, indem Sie eine entsprechende composer.json
-Datei schreiben und composer
ausführen.
{
"require": {
"twig/twig": "^3.0"
}
}
Laden Sie composer herunter und führen Sie dann folgendes Kommando im Verzeichnis aus, in dem auch die Datei composer.json
liegt:
$ php composer.phar install
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
...
$
Es entsteht ein neues Verzeichnis vendor
, in dem sich die Bibliotheken befinden.
Sie können jetzt Twig
in ihren eigenen Programmen benutzen, indem Sie die folgenden Anweisungen an den Anfang Ihres PHP-Skripte stellen:
require_once __DIR__ . '/vendor/autoload.php';
use Twig\Environment;
use Twig\TwigFilter;
use Twig\Loader\FilesystemLoader;
Teil 2: Dynamische Webseite
Programmieren Sie die PHP-Webseite aus der vorhergehenden Übung so um, dass sie die HTML-Ausgabe mit Twig macht. Der PHP-Code sollte danach vollkommen frei von HTML-Code sein, der sich ausschließlich im Twig-Template befindet.
Sie rendern ein Template, indem Sie folgenden Code verwenden:
...
$loader = new FilesystemLoader('.');
$twig = new Environment($loader);
echo $twig->render('index.html.twig', [ 'filme' => $filme ]);
Hierbei ist index.html.twig
der Name des Templates und $filme
das Array mit der Filmliste.
Abgabe
Verwenden Sie das Ihnen zugeordnete Git-Repository und legen Sie für jedes Assignment einen Ordner an: Assignment_01
, Assignment_02
, ...
Innerhalb des Ordners für das Assignment legen Sie bitte folgende drei Ordner an:
src
: Der Source-Code, der nicht im Webroot liegen soll / kanndoc
: Zusätzliche Dokumentation, die Sie zur Verfügung stellen wollensite
: Die fertige Webanwendung. Dieser Ordner ist das Webroot der Anwendung
Legen Sie die Lösung so in Ihrem Repository ab, dass man das Repository einfach clonen kann, dann in den Ordner site
geht und dort einen Webserver (z.B. php -S localhost:8080
) starten kann. Die Seite sollte dann korrekt aufrufbar sein.