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 importieren