Update of exercises
parent
3fc522d4da
commit
29d5d9cf5d
|
@ -0,0 +1,75 @@
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"require": {
|
||||||
|
"twig/twig": "^3.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Laden Sie [composer herunter](https://getcomposer.org/) und führen Sie dann folgendes Kommando im Verzeichnis aus, in dem auch die Datei `composer.json` liegt:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ 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:
|
||||||
|
|
||||||
|
```php
|
||||||
|
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:
|
||||||
|
|
||||||
|
```php
|
||||||
|
...
|
||||||
|
$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 / kann
|
||||||
|
* `doc`: Zusätzliche Dokumentation, die Sie zur Verfügung stellen wollen
|
||||||
|
* `site`: 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.
|
15
readme.md
15
readme.md
|
@ -10,10 +10,11 @@ Die Kursmaterialien finden Sie, wie immer, im [Moodle](https://moodle.hs-mannhei
|
||||||
|
|
||||||
Hier finden Sie die wöchentlichen Assignments für die Vorlesung Webbasierte Systeme (WEB). Die Assignments sind unten, zusammen mit dem Fälligkeitsdatum, aufgelistet.
|
Hier finden Sie die wöchentlichen Assignments für die Vorlesung Webbasierte Systeme (WEB). Die Assignments sind unten, zusammen mit dem Fälligkeitsdatum, aufgelistet.
|
||||||
|
|
||||||
| # | Ausgabe | Thema | Fällig am 📆 | Musterlösung |
|
| # | Ausgabe | Thema | Fällig am 📆 | Musterlösung |
|
||||||
|----|------------|-----------------------------------------------------------|----------------|----------------|
|
|----|------------|-------------------------------------------------------------|----------------|----------------|
|
||||||
| 1. | 09.10.2023 | [Fanseite ohne Styling](Assignment_001/readme.md) | **15.10.2023** | |
|
| 1. | 09.10.2023 | [Fanseite ohne Styling](Assignment_001/readme.md) | **15.10.2023** | |
|
||||||
| 2. | 16.10.2023 | [Styling der Fanseite mit CSS](Assignment_002/readme.md) | **22.10.2023** | |
|
| 2. | 16.10.2023 | [Styling der Fanseite mit CSS](Assignment_002/readme.md) | **22.10.2023** | |
|
||||||
| 3. | 23.10.2023 | [Fanseite responsive machen](Assignment_003/readme.md) | **05.11.2023** | |
|
| 3. | 23.10.2023 | [Fanseite responsive machen](Assignment_003/readme.md) | **05.11.2023** | |
|
||||||
| 4. | 06.11.2023 | [Interaktive Filmdatenbank](Assignment_004/readme.md) | **19.11.2023** | [✅](Assignment_004/solution/) |
|
| 4. | 06.11.2023 | [Interaktive Filmdatenbank](Assignment_004/readme.md) | **19.11.2023** | [✅](Assignment_004/solution/) |
|
||||||
| 5. | 27.11.2023 | [Filmdatenbank mit PHP](Assignment_005/readme.md) | **10.12.2023** | |
|
| 5. | 27.11.2023 | [Filmdatenbank mit PHP](Assignment_005/readme.md) | **10.12.2023** | |
|
||||||
|
| 6. | 11.12.2023 | [Filmdatenbank mit PHP und Twig](Assignment_006/readme.md) | **17.12.2023** | |
|
||||||
|
|
Loading…
Reference in New Issue