L'attribution d'un nom est assez facile une fois que vous l'avez compris.
Prenons l'exemple suivant :
app/models/File.php
namespace App\Models;
class File {
public function someMethodThatGetsFiles()
{
}
}
app/controllers/FileController.php
namespace App\Controllers;
use App\Models\File;
class FileController {
public function someMethod()
{
$file = new File();
}
}
Déclarer le Namespace :
namespace App\Controllers;
Rappelez-vous, une fois que vous avez placé une classe dans un espace de nom, pour accéder aux classes intégrées à PHP, vous devez les appeler depuis l'espace de nom racine : $stdClass = new stdClass();
deviendra $stdClass = new \stdClass();
(voir le \
)
"Importer" d'autres espaces de noms :
use App\Models\File;
Cela vous permet ensuite d'utiliser le File
sans le préfixe Namespace.
Vous pouvez également appeler :
$file = new App\Models\File();
Mais la meilleure pratique consiste à le mettre en haut de la page dans un fichier use
car vous pouvez alors voir toutes les dépendances du fichier sans avoir à analyser le code.
Une fois que c'est fait, vous devez exécuter composer dump-autoload
pour mettre à jour la fonction de chargement automatique de Composer afin de prendre en compte vos classes nouvellement ajoutées.
N'oubliez pas que si vous souhaitez accéder au FileController via une URL, vous devez définir une route et spécifier l'espace de nom complet comme suit :
Route::get('file', 'App\\Controllers\\FileController@someMethod');
Ce qui dirigera toutes les requêtes GET/fichier vers l'interface du contrôleur. someMethod()
Consultez la documentation PHP sur Espaces de noms et Nettut's est toujours une bonne ressource avec este article