`use`-Varianten für Namespaces


Varianten

<?php

use Namespace\Klasse;              // Klassen-Import
use Namespace\Klasse as Alias;     // Import mit Alias
use function Namespace\funktion;   // Funktionen importieren (PHP 5.6+)
use const Namespace\KONSTANTE;     // Konstanten importieren (PHP 5.6+)
use Namespace\Klasse\{             // Group Use (PHP 7+)
    Unterklasse,
    AnotherClass as Alias
};


Klassen importieren

<?php

use App\Models\User;
use App\Models\Article;

$user = new User();
$article = new Article();


Import mit Alias

<?php

use App\Models\User as BaseUser;
use Illuminate\Support\Facades\User as FacadeUser;

// verhindert Namenskollisionen
$user = new BaseUser();
$authUser = FacadeUser::get();


Funktionen importieren (use function)

<?php

use function App\Utils\Helpers\formatDate;
use function App\Utils\Helpers\debug;

// direkter Aufruf ohne Prefix
echo formatDate(new DateTime());
debug($data);


Konstanten importieren (use const)

<?php

use const App\Config\APP_NAME;
use const App\Config\VERSION;

echo APP_NAME;      // Ausgabe: "Meine App"
echo VERSION;       // Ausgabe: "1.0.0"


Group Use (PHP 7+)

<?php

// vor PHP 7 (umständlich)
use App\Models\User;
use App\Models\Article;
use App\Models\Comment;

// ab PHP 7+ (gruppiert)
use App\Models\{User, Article, Comment};

// mit Alias
use App\Models\{
    User,
    Article as Post,
    Comment
};

// Klassen, Funktionen und Konstanten gemischt
use App\Models\User;
use function App\Utils\helper;
use const App\Config\VERSION;
use App\Services\{AuthService, MailService, PaymentService};