Dans mon projet laravel j'ai créé un modèle appelé CustomerLinks
. Le modèle réside dans le app/models
dossier. Mon fichier composer a un chargement automatique de:
"autoload": {
"classmap": [
...
"app/models",
...
],
...
},
Et j'ai une instruction use
dans mon ExtendedUserController qui fait référence à CustomerLinks
:
<?php
...
use CustomerLinks;
...
class ExtendedUserController extends UserController {
Je crois comprendre que puisque la propriété de chargement automatique dans le fichier composer a des applications/modèles dans le classmap, cela signifie que je devrais pouvoir utiliser use CustomerLinks
sans préfixe d'espace de noms.
Cela fonctionne, mais chaque fois que je modifie mon ExtendedUserControler et recharge mon navigateur, j'obtiens l'erreur:
The use statement with non-compound name 'CustomerLinks' has no effect
L'erreur pointe vers le use CustomerLinks
contrôleur utilisateur étendu de ligne.
Quand je fais un composer dump-autoload
tout fonctionne bien, mais cela devient extrêmement irritant quand je dois suivre le schéma
faire un changement -> vider le chargement automatique -> rafraîchir le navigateur -> répéter
Existe-t-il un moyen de traiter l'erreur?
Si vous n'êtes pas dans un espace de noms (c'est-à-dire que vous êtes dans l'espace de noms racine) et que la classe que vous souhaitez utiliser n'est pas non plus dans un espace de noms (c'est-à-dire aussi dans l'espace de noms racine), alors l'utilisation de use
n'a aucun sens , car le code fonctionnera de la même manière sans lui. Vous n'importez rien avec cette instruction.
Composer n'a rien à voir avec cela, ni aucun autre chargement automatique. C'est ainsi que PHP fonctionne de lui-même.