educom PHP-basis E-learning

Les 11 — PDO-classes, fetch modes & DI

Data-access netjes in classes; dependency injection i.p.v. globals.

Demo

opdrachten/11/: dbconnect_via_*.php, pdo_fetch*.php, classes/, show_persons.php

Open demo-bron

Klik een bestandsnaam hieronder om de bron op deze pagina te zien (of “Nieuwe tab”). PHP zelf draait bij jou lokaal in XAMPP.

Gewone opdracht

Opdracht 25

Zet DI-opzet in aparte class-files (DBConnect, Person, …). 11/show_persons.php bevat vooral:

$db_handle = DBConnect::getInstance();
$person = new Person($db_handle);
$person->showPersons();

Extra / variant

Extra A — Opdracht 26 Fetch modes

Script waarin je via $_GET kiest tussen FETCH_ASSOC, FETCH_BOTH, FETCH_LAZY, FETCH_OBJ en de data toont. Startpagina met vier links.

Extra B — Opdracht 27 User.class.php

Maak User.class.php analoog aan Person; toon via show_users.php.

Extra C — Opdracht 28 getUser

Breid User uit met getUser($username, $password) via prepared statement + FETCH_OBJ.

Extra D — Opdracht 29 Login + aanmelden

Twee formulieren (login / aanmelden). Switch in PHP: login of insert+login. Username in session. Include DBConnect + User (met insert-methode).

Extra E Vergelijk connect-stijlen

Bekijk global vs constructor vs DI-demos; noteer in 11/di-keuze.md waarom DI de voorkeur heeft.

Opleveren

  1. git add 11 → commit → push
  2. Mail: les 11 klaar of hulp + repo-link

Door naar les 12 →