Les développeurs sont paresseux. Non, je ne plaisante pas, ils travaillent dur pour créer des systèmes qui les aident à éviter plus de travail dans le futur, surtout le travail répétitif. Et, il existe des exemples assez concret maintenant : nous n’avons plus besoin d’écrire de code, il est généré pour nous. Aujourd’hui, nous allons examiner les exemples de différents composants du panneau d’administration et des développeurs de projets « back-end » pour le « framework » Laravel. Combien de temps peuvent-ils nous sauver ?
Il existe deux grands groupes de générateurs de panneaux d’administration : constructeurs visuels et console. Le choix dépend de votre préférence, que vous aimiez utiliser l’interface graphique ou tapez les commandes « Artisan » avec des paramètres.
En outre, un terme important à connaître ici est CRUD (Create, Read, Update, Destroy) : cette abréviation signifie « créer, lire, mettre à jour, supprimer ». Ces opérations constituent une base pour tous les panneaux d’administration. Un CRUD représente généralement un modèle et un élément de menu pour gérer ces données.
Attention : les versions de ces panneaux d’administrations ne sont pas tous disponible pour la version 5.5 de Laravel (LTS).
Générateurs visuels de panneaux d’administration pour Laravel
Voyager: The Missing Laravel Admin
Ce produit, tout en étant tout nouveau, m’a fait la plus grande impression. Il a déjà un grand nombre de fans, et a déjà été mentionné sur Laravel News et possède sa propre série YouTube par DevDojo .
Voyager se distingue par une interface brillante et professionnelle, mais le point principal est qu’il fonctionne… Instructions d’utilisation claires, thème frontal « friendly », pas de bugs évidents ou de parties inachevées, c’est Voyager. Même les icônes comme l’image du capitaine ou la roue du navire rendent son look génial dans son ensemble.
Une autre décision intelligente est d’avoir un paramètre « données fictives » pendant l’installation, vous pouvez avoir votre panneau d’administration avec des entrées pré-remplies pour jouer avec.
Voyager a également un gestionnaire de médias pour prendre soin de tous vos fichiers téléchargés, ce qui est vraiment pratique et l’aide à se démarquer parmi d’autres constructeurs de panneaux d’administration.
Enfin, avec l’aide de Voyager, vous pouvez également modifier les tables de base de données directement à partir de votre panneau d’administration, une sorte de mini-phpMyAdmin à l’intérieur de votre application « back-end ».
Dans l’ensemble, Voyager semble être la solution la plus brillante sur le marché, mais la situation pourrait facilement changer si elle n’est pas prise en charge ou mise à jour pendant un certain temps, ce qui se produit souvent avec des packages « open source ».
LaraAdmin: Admin Panel + CRM
C’est un autre projet qui m’a impressionné. Après l’installation et la connexion à votre panneau d’administration, vous pouvez créer des modules visuellement qui représentent vos CRUD. Le système modulaire, selon les auteurs, s’inspire de SugarCRM .
En quelques clics, vous pouvez générer des migrations de base de données pour votre modèle, et également le CRUD en même temps, ou séparément, si vous préférez.
LaraAdmin est livré avec quelques modules prédéfinis. Ils vous aident à connaître le système, mais, d’autre part, si je devais créer mon projet à partir de zéro, il me faudrait du temps pour se débarrasser de ces paramètres par défaut de LaraAdmin.
Identique à Voyager ci-dessus, LaraAdmin permet le téléchargement de pièce-jointes. Fondamentalement, c’est un navigateur interne pour vos téléchargements.
Pour la vue frontale, LaraAdmin utilise un thème très populaire qui est AdminLTE. Il est utilisé par la plupart des constructeurs de panneaux d’administration. Il est devenu une sorte de standard sur le marché.
QuickAdmin: Package and Online Generator
Ce paquet est assez simple : après l’avoir installé, vous pouvez créer des éléments de menu CRUD ou non-CRUD, en spécifiant les champs et les rôles ou autorisations. Il a probablement le fichier « readme » le plus court parmi tous les outils de cet article.
Un jalon important pour QuickAdmin est une version en ligne du générateur de panneaux d’administration, au lieu de servir de paquetage Laravel pour votre projet existant, ce générateur construit l’ensemble du projet Laravel pour que vous puissiez le télécharger et l’utiliser. Donc, vous n’avez aucune dépendance de paquetage et n’avez pas besoin d’apprendre une syntaxe pour ce paquet particulier.
Générateurs non-visuels de panneaux d’administration pour Laravel
Z-song / Laravel-admin
Ce paquet est presque entre les deux mondes, une partie du générateur est visuel, afin que vous puissiez créer de nouveaux éléments de menu à l’intérieur de votre panneau d’administration, mais pour la plupart du processus, vous devrez écrire le code manuellement, comme :
php artisan admin:make UserController –model=App\\User $router->resource(‘users’, UserController::class); use Encore\Admin\Grid; use Encore\Admin\Facades\Admin; $grid = Admin::grid(Movie::class, function(Grid $grid){
C’est la différence fondamentale entre les générateurs visuels et les générateurs de code, vous devez apprendre leur syntaxe, certaines règles et y adhérer. Et si vous voulez créer quelque chose de personnalisé au-dessus de ce paquet, il pourrait être très difficile. Néanmoins, le paquet Z-Song est très bon et fonctionne bien.
Il offre également des fonctions supplémentaires telles que les « model-grid », les « model-form », les « model-tree » et même les widgets prêts à l’emploi.
InfyOm Laravel Generator
Générateur assez impressionnant avec un slogan « Obtenez vos API et votre panneau d’administration en quelques minutes », ils mettent l’accent sur les API d’abord, et non sur les panneaux d’administration. Pour cela, ils ont un générateur d’API séparé, qui peut fonctionner comme une partie du panneau d’administration, ou en autonomie. Il génére également des annotations Swagger pour l’API.
Bien que InfyOm Generator ne soit pas visuel (ils affirment qu’ils travaillent sur une version graphique en ce moment), il offre trois options différentes pour spécifier les paramètres CRUD : console, fichier JSON ou tables de base de données existantes. Oui, vous pouvez générer un CRUD pour une table déjà existante, n’est-ce pas cool ?
Une caractéristique intéressante de ce générateur est qu’il génère un code en utilisant le modèle de référentiel, de sorte que votre contrôleur ressemble à ceci :
class BookController extends AppBaseController { /** @var BookRepository */ private $bookRepository; public function __construct(BookRepository $bookRepo) { $this->bookRepository = $bookRepo; } /** * Display a listing of the Book. * * @param Request $request * @return Response */ public function index(Request $request) { $this->bookRepository->pushCriteria(new RequestCriteria($request)); $books = $this->bookRepository->all(); return view(‘books.index’) ->with(‘books’, $books); }
C’est peut-être une bonne chose, mais aussi trop compliqué si vous ne souhaitez pas utiliser de dépôts. Le plus grand bénéfice, en utilisant ce modèle, est que InfyOm génère également des cas de test pour vous !
En termes de « front-end », InfyOm propose quatre modèles de panneaux d’administration : AdminLTE, Metronic, Bootstrap et FlatLab.
Le plus gros problème avec InfyOm (comme pour la plupart des générateurs non visuels) est que vous devez suivre strictement leurs règles pour la syntaxe. Ils indiquent clairement dans la documentation: « Lisez les documents avec soin pour spécifier les entrées de champ. » Mais si vous ne faites pas de fautes de frappe dans les paramètres, ce générateur fonctionnera comme par magie.
AppzCoder: CRUD Generator + Admin Panel
Ce paquet est un produit deux-en-un. Sa documentation officielle indique que l’exigence est Laravel 5.1.
Après l’installation, vous obtenez une vue Laravel Bootstrap par défaut et pouvez ajouter un CRUD manuellement, une à une, en utilisant les commandes « Artisan » avec préfixe « CRUD:[commande] ».
Un exemple de leur documentation officielle :
php artisan crud:generate Posts –fields=”title#string; content#text; category#select#options=technology,tips,health” –view-path=admin –controller-namespace=Admin –route-group=admin
Si cela vous semble trop difficile, vous pouvez fournir les détails des champs dans un fichier JSON, puis le spécifier comme paramètre de la commande.
Vous pouvez également générer différents fichiers séparément, comme ceci :
php artisan crud:controller PostsController –crud-name=posts –model-name=Post –view-path=”directory” –route-group=adminphp artisan crud:model Post –fillable=”[‘title’, ‘body’]”
Après avoir généré les CRUD, vous spécifiez tous les détails vous-même dans le code, où placer l’élément de menu, quel « middleware » ou rôles à utiliser, etc… Donc, ce générateur ne fera qu’une partie du travail pour votre panneau d’administration.
Backpack for Laravel
Celui-ci est en fait un projet énorme en taille. Il s’est développé bien au-delà d’un générateur de panneau d’administration, et il a une structure pratique de paquets distincts : Base, CRUD, LogManager, BackupManager, etc. Les auteurs affirment que Backpack est adapté aux sites Web de présentation, aux démarrages et aux applications Web complexes.
Avis : Backpack a déjà été mentionné dans un article Laravel News avec des cas d’utilisation et une vue d’ensemble.
En plus du générateur CRUD, il a déjà un CRUD pré-construit, un gestionnaire d’autorisation, des paramètres, gestionnaire de pages, gestionnaire de nouvelles et gestionnaire de menus. En outre, certains des paquets de la famille Backpack servent d’extensions : des journaux, des sauvegardes et d’autres fonctionnalités peuvent être ajoutés à votre application facilement.
Cependant, le problème avec « Backpack » est sa rigidité : vous devez décrire toutes les fonctionnalités du CRUD dans votre code de contrôleur, il peut ressembler à ceci :
class TagCrudController extends CrudController { public function setup() { $this->crud->setModel(“App\Models\Tag”); $this->crud->setRoute(“admin/tag”); $this->crud->setEntityNameStrings(‘tag’, ‘tags’); $this->crud->setColumns([‘name’]); $this->crud->addField([ ‘name’ => ‘name’, ‘label’ => “Tag name” ]);
Bien qu’il soit préférable de configurer tout dans la méthode du contrôleur, mais si vous voulez créer quelque chose de personnalisé en plus, vous devriez « pirater » Backpack. Pour être juste, cela s’applique à la plupart des paquets de cette série : vous devez faire face aux dépendances, peut-être que Backpack est le plus stricte ici…
Il convient également de mentionner que Backpack n’est pas gratuit pour un usage commercial. Les auteurs l’indiquent de manière conviviale : « Gratuit si vous ne faites pas de l’argent en l’utilisant, pas cher si vous le faites » (19$, pour être précis).
SleepingOwl Admin
Probablement l’un des paquets les plus anciens de cette liste, mais toujours activement maintenu : ce paquet est créé par une société Russe et vous pouvez voir la langue Russe dans certaines parties de la documentation. Mais cela n’empêche pas l’utilisation de SleepingOwl. Le paquet est assez puissant !
Comme dans d’autres cas, ici, vous devez utiliser la syntaxe du paquet assez fortement, voici comment ajouter un menu dans SleepingOwl :
Admin::menu()->url(‘/’)->label(‘Start Page’)->icon(‘fa-dashboard’)->uses(‘\App\HTTP\Controllers\AdminController@getIndex’); Admin::menu(\App\User::class)->icon(‘fa-user’); Admin::menu()->label(‘Subitems’)->icon(‘fa-book’)->items(function () { Admin::menu(\Acme\Models\Bar\User::class)->icon(‘fa-user’); Admin::menu(\Acme\Models\Foo::class)->label(‘my label’); });
Un autre inconvénient ici est que la documentation du paquet semble un peu dépassée, au lieu de la commande artisan admin:install, vous devez utiliser sleepingowl:install, et d’autres exemples de cette incohérence peuvent être trouvés ici et là.
Il s’agit donc de huit paquets pour générer votre panneau d’administration, et il en existe cinq autres à mentionner…
J’ai testé deux autres paquets qui n’ont pas réussi à livrer :
- CrudBooster : a fonctionné par quelques corrections manuelles, mais la documentation est difficile à comprendre (peut-être utilisé Google Translate, l’auteur est originaire d’Indonésie), et je n’ai pas aimé certaines recommandations de l’auteur, comme l’utilisation des noms de champs id_xxxx au lieu de xxxx_id
- Zofe / Rapyd-Laravel : malheureusement, n’a pas fonctionné sur Laravel 5.3, il est probable qu’il n’est pas prévu d’être mis à jour au moment de l’écriture, la dernière version prise en charge, selon leur « readme », est Laravel 5.2
Enfin, trois autres options pour choisir parmi les packages premium de CodeCanyon :
- Laravel CRUD – CMS – Sximo 5 LTS (20$)
- Josh – Laravel Admin Template + Front End + CRUD (28$)
- Architecte administrateur – Cadre d’administration de Laravel (29$)
Et, nous avons terminé. Ce sont toutes les options viables que j’ai trouvées pour créer votre panneau d’administration Laravel (ou presque) sans avoir vraiment du code à écrire.