Bonjour,

J'utilise Laravel 5.2 pour un projet. A la base je suis plus à l'aise avec CakePHP, mais j'avais envie de changer.

Quand j'utilise un package avec Laravel, par exemple Toastr (https://github.com/oriceon/toastr-5-laravel) je suis obligé de rajouter un \ devant le singleton :

\Toastr::success('message');

Si je ne le mets pas, j'obtiens ce joli message d'erreur:

Class 'App\Http\Controllers\Toastr' not found

C'est aussi vrai avec l'utilisation d'un modèle, je ne peux pas faire :

 $user = new App\User;

Il faut que je fasse :

$user = new \App\User;

J'espère que j'ai correctement expliqué mon problème.
Merci

Ben

7 réponses


Onouriis
Réponse acceptée

Oui parce que les alias sont utilisés mais en dehors des class. Par exemple si tu veux utiliser Toastr dans une vue, tu mets :
{{ Session::get('tonelement') }}, tu auras un echo de la valeur tonelement dans la session.
C'est la même chose, quand tu regardes les routes, quand tu fais Route::get('/bidule', 'HaController@index'), j'imagine que ça fonctionne grâce à l'alias défini dans l'app.php.

Quel est le problème ? Si tu ne souhaites pas avoir ça, tu peux utiliser le use

benbox69
Auteur

Donc c'est le comportement normal?

Oui.
Mais je te conseille d'utiliser les use, c'est un peu plus propre pour s'y retrouver. Enfin c'est un avis personnel.

benbox69
Auteur

Du coup je ne comprends pas trop l'intéret des façades...

J'ai ajouté:

'Toastr' => 'narutimateum\Toastr\Facades\Toastr'

dans mes allias...

benbox69
Auteur

Ok j'ai compris, merci

Haha, j'ai mis Toastr et j'ai pris Session en exemple...

Bonne continuation.