Namespaces trennen Code in logische Gruppen. PSR-4-Autoloading via Composer sorgt dafür, dass du nie wieder require_once schreibst.
Namespace deklarieren
// app/Models/User.php
<?php
namespace App\Models;
class User
{
// ...
}
Namespace nutzen
<?php
namespace App\Http\Controllers;
use App\Models\User;
use App\Services\Mailer as MailService;
use Illuminate\Support\Str;
class RegisterController
{
public function store(): void
{
$user = User::create([...]);
MailService::welcome($user);
}
}
PSR-4-Autoloading mit Composer
In der composer.json mappst du Namespaces auf Verzeichnisse:
{
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Seeders\\": "database/seeders/"
}
}
}
Nach composer dump-autoload findet PHP jede Klasse automatisch. App\Http\Controllers\RegisterController ⇒ app/Http/Controllers/RegisterController.php.
Aliasing bei Namenskollisionen
use App\Models\User;
use App\Services\User as UserService; // Alias
use function Str\slug; // Funktion importieren
use const HTTP\STATUS_OK; // Konstante importierenHäufige Fragen
Zu welcher Sprache gehört dieses Kapitel?
Dieses Kapitel ist Teil der PHP-Referenz auf programmierung.net.
Wie ist das Kapitel aufgebaut?
Jedes Kapitel folgt derselben Struktur: Konzept, Syntax, Beispiele und Randfälle. Code-Beispiele sind kopierfertig und syntax-geprüft.
Wo finde ich die vollständige Übersicht?
Alle Kapitel findest du in der Sidebar oder in der PHP-Übersicht. Für Funktionen & Klassen gibt es die separate Referenz.