2017-09-08 1 views
0

Voici ma structure de fichier (Laravel 5.2)nouvelle instance de classe dans différents espaces de noms PHP

/app/http/middleware/Site.php (fichier un)

/ressources/vues/layouts/Automobile /text/DefaultText.php (fichier deux)

J'ai le premier fichier à un espace de nommage App\Http\Middleware

Je veux créer une nouvelle instance de la classe DefaultText (fichier deux) à partir de fichier un.

Faire cela ne fonctionne pas:

$config_class = "\\Resources\\Views\\Layouts\\Automotive\\Text\\DefaultText"; 
new $config_class(); 

Et cela ne fonctionne pas non plus:

$config_class = "\\resources\\views\\layouts\\Automotive\\text\\DefaultText"; 
new $config_class(); 

Dans les deux cas, il est écrit:

Class '\Resources\Views\Layouts\Automotive\Text\DefaultText' not found 

Comment puis-je faire ?

+2

Il peut y avoir plusieurs raisons pour lesquelles. 1. Vous n'avez pas ajouté le dossier '/ resources' à mapper à un espace de noms dans le' 'autoload": {"psr-4": {...}} '-part dans votre composer.json. 2. Vous n'avez pas ajouté l'espace de noms correct à votre fichier DefaultText-class. 3. Vous n'utilisez pas le même boîtier (les noms de dossier et l'espace de noms doivent contenir exactement le même boîtier). –

+0

Merci, je vais essayer d'ajouter à l'autoload, je n'ai pas fait ça. – Bryce

+0

C'était tout !! Merci beaucoup! – Bryce

Répondre

0

Je devais ajouter le dossier /resources à mapper à un espace de noms dans la partie "autoload": { "psr-4": { ... }} de mon fichier composer.json.

Merci Magnus Eriksson pour l'aide!