⊗ppOpNsCU 101 of 107 menu

Commande use et espaces de noms en POO en PHP

Supposons que nous ayons la classe suivante Data :

<?php namespace \Core\Admin; class Data { public function __construct($num) { } } ?>

Supposons également qu'il y ait une classe Page, créant en son sein des objets de la classe Data :

<?php namespace Users; class Page { public function __construct() { $data1 = new \Core\Admin\Data('1'); $data2 = new \Core\Admin\Data('2'); } } ?>

Comme vous le voyez, nos deux classes se trouvent dans des espaces de noms complètement différents, donc les appels à la classe Data ne peuvent pas être simplifiés, comme nous l'avons fait dans la leçon précédente. Ces appels, cependant, sont très longs et peu pratiques, car dans chaque appel à la classe Data, il faut indiquer son long espace de noms.

Pour résoudre ce type de problème, il existe une commande spéciale use. Avec cette commande, il suffit de connecter une fois la classe par son nom complet, et après cela il sera possible d'accéder à cette classe simplement par le nom de la classe. Regardez l'exemple :

<?php namespace Users; use \Core\Admin\Data; // nous connectons la classe class Page extends Controller { public function __construct() { $data1 = new Data('1'); // nous appelons simplement par le nom $data2 = new Data('2'); // nous appelons simplement par le nom } } ?>

Simplifiez le code suivant en utilisant use :

<?php namespace Project; class Test { public function __construct() { // Créons 3 objets d'une même classe : $data1 = new \Core\Users\Data('user1'); $data2 = new \Core\Users\Data('user3'); $data3 = new \Core\Users\Data('user3'); } } ?>

Les classes suivantes sont données :

<?php namespace Core\Admin; class Controller { } ?>
<?php namespace Users; class Page extends \Core\Admin\Controller { } ?>

Simplifiez le code d'héritage de la classe en appliquant la commande use.

ithucsroaz