Die use-Anweisung und Namensräume in OOP in PHP
Nehmen wir an, wir haben die folgende Klasse Data:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Nehmen wir weiter an, es gibt eine Klasse Page, die
in ihrem Inneren Objekte der Klasse Data erstellt:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Wie Sie sehen, befinden sich beide unserer Klassen
in völlig unterschiedlichen Namensräumen, daher
können die Aufrufe der Klasse Data nicht vereinfacht werden,
so wie wir es in der vorherigen Lektion getan haben. Diese Aufrufe sind jedoch sehr lang
und unkomfortabel, da bei jedem Aufruf der Klasse
Data ihr langer
Namensraum angegeben werden muss.
Zur Lösung eines solchen Problems existiert die
spezielle Anweisung use. Mit
dieser Anweisung reicht es aus, die Klasse einmalig
über ihren vollständigen Namen einzubinden, und danach
kann auf diese Klasse einfach über den Klassennamen zugegriffen werden. Sehen Sie sich das Beispiel an:
<?php
namespace Users;
use \Core\Admin\Data; // binden die Klasse ein
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // rufen einfach über den Namen auf
$data2 = new Data('2'); // rufen einfach über den Namen auf
}
}
?>
Vereinfachen Sie den folgenden Code mit Verwendung von
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Erstellen 3 Objekte einer Klasse:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Gegeben sind die folgenden Klassen:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
Vereinfachen Sie den Code der Klassenvererbung, indem Sie
die Anweisung use anwenden.