9
votes

Meilleure pratique pour la création d'une interface administratrice à Laravel 4

Je voudrais créer une interface administratrice pour mon projet Laravel, qui est complètement séparé du côté de l'utilisateur.

Par exemple, dans le cadre Yii, je peux créer un module et cela garantira une séparation complète du côté de l'utilisateur. Dans un module, je peux utiliser une structure de dossiers séparée, etc.


1 commentaires

3 Réponses :


2
votes

Si vous connaissez le compositeur, vous pouvez importer dans des packages (modules AKA)

Il existe un module largement disponible avec une interface multi-niveaux déjà appelée Sentry 2.0: https://github.com/cartalyste/sentry

Vous pouvez également faire le vôtre si nécessaire si celui que je propose est trop complexe.

Il y a même une version "Laravel-prête" de Sentry.


2 commentaires

Malheureusement, je ne connais pas le compositeur, mais je voudrais l'apprendre / l'utiliser. Merci


Eh bien, c'est votre principal moyen d'obtenir Laravel. Le didacticiel de déploiement Laravel de Checkout Jeffrey Way laracasts.com/lessons/laravel-installation-for-newbs - Cela vous montre compositeur - à partir de maintenant, vous devriez commencer à être familier avec cela si vous souhaitez avancer dans une meilleure programmation et pour ne pas réinventer la roue.



0
votes

J'utilise la même structure de répertoire que vous souhaitez utiliser sur la plupart (sinon tous) mes projets Laravel. Fondamentalement, je garde les vues d'administrateur et les contrôleurs d'administration distincts des celles de l'avant.

Exemples: Contrôleurs:

App / Contrôleurs / Admin / Admin * Nom * Controller.php App / Contrôleurs / Site / * Nom * Controller.php

Vues: App / Vues / Admin / Certains_folder /index.blade.php App / Vues / Site / Certains_folder /index.blade.php

Je suggérerais également que vous installez ce projet Laravel https: // github. com / andrewelkins / laravel-4-bootstrap-starter-site qui donnera un très bon début sur la façon d'organiser les choses dans votre projet Laravel. Il possède également la même structure de dossiers que vous souhaitez utiliser.

bonne chance.


0 commentaires

24
votes

C'est vraiment une vaste question et une réponse ne peut pas tout couvrir de meilleures pratiques pour les contrôleurs d'administration ou la gestion de la fin de la fin, mais il existe des concepts de base pour la construction d'un panneau code> code>: xxx pré>

à l'aide d'un préfixe code> Vous pouvez séparer tous les itinéraires d'administration dont URL code> sera préfixé avec admin code> donc, si vous avez Un Utilisateurs CODE> contrôleur pour la gestion de l'utilisateur dans l'arrière-plan, alors c'est URL code> sera préfixé avec admin code>, c'est-à-dire Site.com/admin/userers code>. Utilisant également un fichier avant code>, vous pouvez ajouter une authentification pour tous les contrôleurs d'administration au même endroit, cela signifie que vous devez accéder à tous vos contrôleurs d'administration, vous devez être connecté et le filtre pourrait être quelque chose comme ceci: xxx pré>

pour, crud (Créer, lire, mettre à jour, supprimer) Utilisez un Contrôleur débrouillard , par exemple, le usercontroller code> dans un exemple de déclaration d'itinéraire ingénieuse. p>

Utiliser des classes de référentiel (motif de référentiel) pour découplage des dépendances, lire Cet article . p>

Utilisez toujours une route nommée, c'est-à-dire tableau ('comme' => '. ',' utilise '=>' Somecontroller @ méthode ') code>, il s'agit d'un exemple de nommer un itinéraire. Les itinéraires nommés sont faciles à faire référence, c'est-à-dire retour redirect :: itinéraire ('admin.home') code> rediriger vers Site.com/admin code> car nous avons utilisé admin .Home code> dans comme code> pour attribuer le nom pour cet itinéraire. p>

Gardez les contrôleurs d'administrateur dans un dossier séparé et utilisez un espace de noms code> par exemple , admin \\ dashboardcontroller @ index code> doit être dans app / contrôleurs / admin code> et votre dashboardcontroller code> doit ressembler à ceci: p>

<?php namespace Admin;

class DashBoardController extends \BaseController {
    public function index()
    {
        //...
    }
}


3 commentaires

Je pense que comme \ Basecontroller, je devrai inclure toute demande de demande, de la vue, selon la méthode du contrôleur, sinon, une erreur sera lancée comme une classe de demande non trouvée quelque chose. Comment sortir de ce problème?


Oui, si ESPACE est utilisé, alors vous devez utiliser `ou ajouter instruction" Définition haut de la classe comme Utiliser la demande; .


J'ai trouvé une autre meilleure façon de conserver vos contrôleurs de tous les contrôleurs dans le dossier d'administration et de les modifier dans Compositeur.json, alors dans ce cas, il n'y aura pas besoin d'utiliser manuellement des espaces de noms ou d'ajouter des aides manuellement.