Plusieurs Projets utilisant une seule instance laravel
Je suis nouveau sur Laravel. Selon mes recherches sur ce cadre je trouve qu'il est très utile pour mes projets. Cependant, je suis confronté à la difficulté de la personnalisation pour utiliser une instance unique de Laravel cadre de plusieurs projets. Je ne veux pas suivre le multi-site approche disponible dans Laravel c'est à dire, à l'aide de la structure du répertoire des modèles et des contrôleurs pour des projets parce que je ne vais pas être en mesure de pousser mon projet liés à des changements en une seule étape dans Git.
Je veux quelque chose de ce genre.
- commune framework Laravel
(commune de bibliothèques et de fournisseur de fichiers. D'avoir également des fonctionnalités communes utilisées par les différents projets)app/controllers
app/models
app/views
vendeur
bootstrap
- Proj1
(ayant ses propres entités et est en mesure d'utiliser les bibliothèques et les fonctions du modèle de common framework Laravel)app/controllers
app/models
app/views
bootstrap
- Proj2
(ayant ses propres entités et est en mesure d'utiliser les bibliothèques et les fonctions du modèle de common framework Laravel)app/controllers
app/models
app/views
bootstrap
c'est à dire, le Nouveau projet doit avoir son propre répertoire app et est en mesure d'utiliser les fonctions du modèle de projet commun.
Ce sera facilité ma tâche serait très utile pour mes projets à venir.
Si quelqu'un pouvait m'aider, je vous apprécie vraiment.
OriginalL'auteur kanchan | 2014-03-21
Vous devez vous connecter pour publier un commentaire.
Utiliser des espaces de noms Pour Organiser et Séparer les Choses
Créer PSR-4 le chargement automatique des entrées de séparer vos projets de fichiers en espace de noms:
Tout commun que vous mettez dans le coeur, tout ce non-commun dans les fichiers de projet.
Maintenant, vous avez juste à créer vos fichiers dans leurs dossiers respectifs et de l'espace de noms:
C'est un BaseController dans le coeur, utilisé par tous vos contrôleurs:
C'est un BaseController de l'application Principale à l'aide de votre Contrôleur de Base:
Et c'est un contrôleur HomeController de l'application Principale à l'aide de votre son Contrôleur de Base, comme ils sont dans le même espace de noms que vous n'avez même pas besoin d'importer le fichier:
Chaque fichier de classe dans Laravel peut être organisée de cette façon, même vos points de vue, de sorte que vous pouvez avoir ces fichiers:
Alors votre les itinéraires peuvent être séparés (organisé) et le préfixe d'espace de noms:
En donnant à ces url:
Et pointage des actions à ceux des actions de contrôleur:
Bien sûr, édité montrer comment organiser vos itinéraires des fichiers.
Je vous remercie encore. C'est aussi un bon exemple sur la façon d'éviter des modules.
Tout ce qui peut être fait (et c'est pas une mauvaise approche - j'ai fait comme ça), il prend BEAUCOUP plus de travail pour maintenir singularité entre les projets. Les problèmes commencent lorsque vous avez un projet qui a plus de vitesse que les autres et les différents composants doivent être mis à jour, mais pourrait avoir un impact fonctionnalités sur d'autres projets. Dans mon expérience, il est beaucoup plus facile, plus propre et plus sûr à long terme pour créer un nouveau Laravel projet pour chaque projet et avez vos composants disponibles sous forme de modules.
OriginalL'auteur Antonio Carlos Ribeiro
Il n'est pas vraiment une question à poser, mais en termes généraux ce que vous voulez faire, c'est très faisable.
Vous pouvez créer un répertoire dans le dossier apps pour chaque projet et l'espace de chacune des classes dans la structure que vous créez ci-dessous. Vous pouvez utiliser le PSR (idéalement PSR-4) chargement automatique à faire de ces classes accessibles.
Vous auriez mis les routes pour chaque projet dans leur propre fichier de routes, puis les inclure à travers les routes principales de fichier, ou vous pouvez créer un fournisseur de services pour chaque projet, l'ajouter à votre application fichier de configuration et l'utiliser pour charger les routes pour ce projet.
CEPENDANT, tout ce que dit, ce n'est pas ce que je ferais. Vous n'avez pas dit pourquoi vous voulez à la structuration de vos projets, de cette façon, de sorte que vous pouvez avoir une très bonne raison, mais personnellement, je préfère les mettre bibliothèques communes dans leurs propres paquets (aide à s'assurer des limites claires et propres api) et de l'utilisation Compositeur à tirer dans chaque projet.
OriginalL'auteur petercoles