2017-10-09 4 views
0

J'ai un problème en cours d'exécution mon paquet Laravel nouvellement créé qui s'il vous plaît consulter https://github.com/Younesi/laravel-aparatclasse « fournisseur PackageName ClassName » Pas trouvé pour nouveau package Laravel

Je peux le télécharger via Composer sans problème et il est auto -découvert via Laravel mais quand j'essaie de l'utiliser, il me donne l'erreur suivante de ne pas trouver de classe.

classe 'Younesi \ LaravelAparat \ Aparat' not found

Mon service code fournisseur est comme:

/** 
* Register the service provider. 
* 
* @return void 
*/ 
public function register() 
{ 
    $this->app->bind('aparat', function ($app) { 
     return new Aparat; 
    }); 

} 

/** 
* Get the services provided by the provider. 
* 
* @return array 
*/ 
public function provides() 
{ 
    return array('aparat'); 
} 

Toute aide serait appréciée.

+0

mettre cette utilisation Aparat en haut de votre fichier –

+0

@GauravGupta Ajout 'use Younesi \ LaravelAparat \ Aparat;' Ne aide pas –

+0

avez-vous fourni son adresse à app.php dans config –

Répondre

1

regardant le paquet, il fonctionne très bien, dans composer.json de ce paquet il y a:

"autoload": { 
    "psr-4": { 
     "Younesi\\laravelAparat\\": "src" 
    } 
    }, 

Notez que laravel est pas lettre majuscule ici, donc dans votre code, vous devez importer plutôt de cette façon:

use Younesi\laravelAparat\Aparat; 

au lieu de:

use Younesi\LaravelAparat\Aparat; 

Je vois aussi que vous êtes l'auteur de ce paquet, donc je recommanderais d'utiliser la conversion standard (espace de nom commençant par la majuscule) au lieu de l'espace de noms courant.

En regardant plus au code de package, je vois aussi que fournisseur de services il y a:

namespace Younesi\LaravelAparat; 
espace de noms

donc il n'y a rien de bizarre, il ne fonctionnera pas si vous autoLoad avec lettre minuscule et d'espace de noms avec lettre majuscule

0

Il y a eu quelques cas avec le problème de l'enregistrement, les problèmes de cache, etc. Essayez une de ces solutions:

  • enregistrer votre fournisseur (dans le principal composer.jso n, puis dans config/app.php [fournisseur & alias]), puis exécutez composer dump-autoload
  • assurez-vous que vous avez lancé votre colis: allez dans le dossier, puis composer init
  • essayer php artisan config:cache ou supprimer tout bootstrap/cache/