PHP Testaufgabe
Start-Paket: aufgabenverwaltung.zip
Gegeben sind die folgende Dateien:
-
.htaccess
die alle Anfragen aufindex.phpweiterleitet -
index.php
wertet alle Anfragen aus / rendert passende View (HTML Ansicht) ...
zum Erweitern / Ausprogrammieren -
style.css
beinhaltet alle nötigen Styles (muss nicht weiter bearbeitet werden!) -
classes\Database.php
zum Ausprogrammieren -
classes\Tasks.php
zum Ausprogrammieren
SQL Dump
Importiere die folgende MySQL Datenbank (database.sql) mit Testdaten
CREATE DATABASE IF NOT EXISTS task_db;
USE task_db;
CREATE TABLE IF NOT EXISTS tasks (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT,
status ENUM('open', 'completed') DEFAULT 'open',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO tasks (title, description, status) VALUES
('Testaufgabe 1', 'Beschreibung 1', 'open'),
('Testaufgabe 2', 'Beschreibung 2', 'completed');
Aufgaben
Eine Web-Anwendung Aufgabenverwaltung (TaskList):
- Ansicht der gesamten Liste von Einträgen
- Hinzufügen und Bearbeiten von Einträgen
- Löschen von Einträgen
- Ändern des Status von Einträgen
Erweitere index.php und programmiere Database.php und Tasks.php passend aus,
damit die Aufgabenstellungen erfĂĽllt werden.
1. index.php
Steuert den generellen Ablauf der Anwendung. Alle Anfragen werden entgegengenommen, ausgewertet / gefiltert (gĂĽltige und ungĂĽltige) und passend verarbeitet.
Folgendes URL Pattern wird verwendet:
http://localhost:8000/ → Liste
http://localhost:8000/add → neue Aufgabe
http://localhost:8000/edit/1 → bearbeiten
http://localhost:8000/toggle/1 → Status ändern
http://localhost:8000/delete/1 → löschen
2. Database.php
Beinhaltet die Verbindungsdaten zur Datenbank und regelt die Datenbankverbindung.
Methoden die enthalten sein sollen:
getConnectionum eine PDO Singleton Verbindung zu erhaltenqueryum Queries auszufĂĽhren und Ergebnisse zu holenexecuteum Queries (INSERT/UPDATE/DELETE) auszufĂĽhrenlastInsertIdum die letzte Insert-ID zu erhalten
3. Tasks.php
Die Tasks-Klasse verarbeitet Daten ĂĽber die Database-Klasse.
Methoden die für die Anwendung bzw. unterschiedlichen Operationen benötigt werden:
getAllgetByIdcreateupdatedeletetoggleStatus