# ZAPHandler Interface | File | Change | |------|--------| | **`lib/ZAPHandler.interface.php`** | **Created** — defines `ZAPHandler` interface with `public function getContent()` | | **`lib/ZAPHome.class.php`** | Added `implements ZAPHandler` | | **`lib/ZAPDisplay.class.php`** | Added `implements ZAPHandler` | | **`lib/ZAPZap.class.php`** | Added `implements ZAPHandler` | | **`lib/ZAPController.class.php`** | Added `instanceof ZAPHandler` guard inside `fetch()` before calling `getContent()` | ### How it works - Any class named `ZAP{Mode}` in `lib/` is autoloaded and instantiated by `ZAPController` - The controller now checks `$this->action instanceof ZAPHandler` **before** calling `getContent()` - If a handler forgets to implement the interface, you get a clear `die()` message instead of a cryptic runtime error - The interface file uses the `.interface.php` naming convention, which the existing autoloader already handles (it checks `.interface.php` first, then `.class.php`)