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.
|
|
@ -11,9 +11,10 @@ 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.
|
||||
|
||||
| # | Ausgabe | Thema | Fällig am 📆 | Musterlösung |
|
||||
|----|------------|-----------------------------------------------------------|----------------|----------------|
|
||||
|----|------------|-------------------------------------------------------------|----------------|----------------|
|
||||
| 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** | |
|
||||
| 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/) |
|
||||
| 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