Laravel Class 'App \ Modules \ ServiceProvider' non trouvé?
Bonjour les Amis je suis nouveau dans le framework Laravel.
je crée le répertoire des modules dans le dossier app.
puis, j'ai aussi créer ServiceProvider.php fichier dans le répertoire des modules.
mon fichier de structure.
app\modules\ServiceProvider.php
C'est le code de ServiceProvider.php.
<?php
namespace App\Modules;
abstract class ServiceProvider extends \Illuminate\Support\ServiceProvider {
public function boot() {
if ($module = $this->getModule(func_get_args())) {
$this->package("app/" . $module, $module, app_path() . "/modules/" . $module);
}
}
public function register() {
if ($module = $this->getModule(func_get_args())) {
$this->app["config"]->package("app/" . $module, app_path() . "/modules/" . $module . "/config");
//Add routes
$routes = app_path() . "/modules/" . $module . "/routes.php";
if (file_exists($routes))
require $routes;
}
}
public function getModule($args) {
$module = (isset($args[0]) and is_string($args[0])) ? $args[0] : null;
return $module;
}
}
Puis-je créer un nouveau répertoire dans le répertoire des modules.
et aussi de créer des ServiceProvider.php fichier dans le répertoire de points.
C'est ServiceProvider.php fichier de code.
<?php
namespace App\Modules\Points;
class ServiceProvider extends \App\Modules\ServiceProvider {
public function register() {
parent::register("points");
}
public function boot() {
parent::boot("points");
}
}
Alors maintenant, j'essaie de charger le projet je suis d'erreur comme.
Class 'App\Modules\ServiceProvider' not found
Symfony\Component\Debug\Exception\FatalErrorException
…/app/modules/points/ServiceProvider.php5
j'ai aussi ajouter autoload entery dans compositeur.fichier json comme.
"autoload": {
"classmap": [
"app/modules"
]
},
Puis également exécuter cette commande.
composer dump-autoload
mais après n'est pas un travail.
j'ai aussi inscrire mon ServiceProvide dans app.php comme.
'providers' => array(
'App\Modules\Points\ServiceProvider'
),
s'il vous plaît dites où je fais une erreur.
merci.
source d'informationauteur Renish Khunt
Vous devez vous connecter pour publier un commentaire.
J'essaie d'exécuter votre code, et tout fonctionne très bien.
C'est une nouvelle installation de Laravel 4.1
Obs.: vérifiez votre
vendor/composer/autoload_classmap.php
compositeur.json
app.php
app/modules/points/ServiceProvider.php
app/modules/ServiceProvider.php
Ajouter à
composer.json
autoload section:et puis
composer dump-autoload
Je suis assez débutant dans la création d'un package. Le premier temps après, j'ai créé la structure suivante, je l'ai mis dans le Fournisseur de dossier.
Mais j'ai vite réalisé que ce n'a pas de sens, puisque Laravel ne sera pas automatiquement tous les paquets pour vous, sauf si vous vous êtes inscrit. Donc je l'ai déplacé le dossier /app/vendeur (nouveau dossier).
Et puis la suite de Andreyco la suggestion de notifier autoload chemin
Et puis quand je lance
php artisan dump-autoload
et ouvrirvendor/composer/autoload_classmap.php
toutes les classes nouvelles, sous QPlot sont enregistrés 🙂Maintenant, quand je reviens pour ajouter le fournisseur de Laravel
/app/config/app.php
Ainsi, les mesures sont
Exécuter la commande dans votre projet chemin de la racine
compositeur de vidage-autoload
ma première pensée a été le compositeur de chargement automatique en tant que bien, mais il ne se sent pas très Laravel 5ish pour moi. L5 fait un usage intensif de Fournisseurs de Services, ils sont ce que l'amorce de votre application.
Pour commencer, j'ai créé un dossier dans mon répertoire app appelés les Aides. Puis dans les Aides de dossier, j'ai ajouté les fichiers pour les fonctions que je voulais ajouter. Avoir un dossier avec plusieurs fichiers nous permet d'éviter un gros fichier qui est trop long et impossible à gérer.
Ensuite, j'ai créé un HelperServiceProvider.php en exécutant l'artisan de commande:
artisan faire:fournisseur de HelperServiceProvider ou
php artisan faire:fournisseur de HelperServiceProvider
Dans le registre de la méthode, j'ai ajouté cet extrait
enfin enregistrer le fournisseur de services dans votre config/app.php dans les fournisseurs de tableau
'fournisseurs' => [
'App\Fournisseurs\HelperServiceProvider',
]
maintenant, n'importe quel fichier dans vos Aides répertoire est chargé et prêt à l'emploi.
Mise à JOUR 2016-02-22
Il ya beaucoup de bonnes options ici, mais si ma réponse vous convient, je suis allé de l'avant et faire un pack pour les aides de cette façon. Vous pouvez soit utiliser le package pour l'inspiration ou n'hésitez pas à le télécharger avec le Compositeur. Il a une certaine construit dans les aides que j'utilise souvent (mais qui sont tous inactifs par défaut) et vous permet de faire votre propre des aides personnalisées avec un simple Artisan générateur. Il aborde également la suggestion d'un répondeur eu de l'aide d'un mappeur et vous permet de définir explicitement l'aide personnalisée à charger, ou par défaut, de charger automatiquement tous les fichiers PHP dans votre helper répertoire. Commentaires et PRs sont très appréciés!
compositeur besoin browner12/helpers