Besoin d'aide ?

Interface de mise à jour de packages / modules

Avatar de Nunu
Nunu

Bonjour tous le monde,

Je suis nouveau et je viens à l'instant de m'inscrire car je suis un peu bloqué et je ne sais pas vers qu'elle solution m'orienter.

Je suis en train de développer un CMS avec Laravel (Actuellement en version 5.8). Ce projet est développé et fonctionne sous forme de modules.

J'ai un package (composer) "framework" avec les dépendances globales nécessaires et certaines classes / fonctions utiles.

J'ai ensuite plusieurs modules (Core, Auth, Cms ... etc) qui possède chacun un fichier .json à la racine avec certaines configurations (en l'occurrence ce qui nous intéresse ici, c'est la "version" du module).

Je suis en train de développer une interface d'administration permettant de mettre à jour ces modules (si il y a des mises à jour de disponible).

Mais je ne sais pas qu'elle solution serait la plus adaptée.

Plusieurs questions :

  • Est-ce que mes modules doivent être développé sous forme de package composer, auquel cas, pour mettre à jour un module, il suffirait (dans les grandes lignes) d'éxecuter la commande "composer update mon/module:latest-version" et ensuite éxecuter les commandes nécessaires (migration, seed ... etc). Là où je bloque avec cette solution, c'est comment savoir si une mise à jour est disponible ? Utiliser l'API de Github pour récupérer le dernier TAG et comparer avec la version déclarée dans mon fichier .json ?
  • Je pourrai ne pas utiliser composer pour mes modules et télécharger la dernière version sur le repository, extraire les fichiers, éxecuter les commandes pour les migrations, seeds etc, mais l'extraction ne fait pas vraiment un "git pull", donc si sur une version je supprime des fichiers qui ne sont plus utilisées, lors de l'extraction, c'est fichiers seront toujours présent et ce n'est pas très propre.

Dernière question qui dépendra un peu du choix fait, mais comment est-il possible en exécutant une commande, Artisan ou Composer de réaliser une sorte de progress bar que j'afficherai sur mon interface d'administration ?

Je ne sais pas si certains d'entres-vous ont déjà eu à réaliser ce genre de développement, je suis preneur de toutes vos remarques, idées :)

Merci ! Bonne journée !

Posté il y a 6 mois
Avatar de bestmomo
bestmomo

Bonjour,

Il me semble que le plus souple est d'avoir des packages distincts et l'API de Github semble complète.

Pour la barre de progression je n'ai pas d'idée.

Par contre j'ai une question : il existe déjà de nombreux CMS basés sur Laravel, pourquoi en créer un nouveau ?

Posté il y a 6 mois
Avatar de Nunu
Nunu

Bonjour bestmomo,

Merci pour ta réponse, donc selon toi, je devrai passer par des repositories github mais sans passer par composer ? Et mettre à jour en passant par l'API de Github ? :)

Pour la barre de progression, peut-être explorer une solution avec Broadcast + Echo et récupérer cela en jQuery (VueJS) ?

J'ai pu regarder ce qu'il se faisait niveau CMS avec Laravel, effectivement. J'ai vu OctoberCMS, AsgardCMS, Grav ... Ces CMS sont intéressant mais j'envisage des perspective professionnelles qui me conduit à préparer et développer mon propre outils de gestion de contenu :) Par respect des auteurs des CMS open source, je préfère développer moi-même ma propre architecture et cela me permet d'approndir d'avantages mes connaissances.

Merci de ta contribution.

Posté il y a 6 mois
Avatar de bestmomo
bestmomo

Salut,

Non je n'avais pas dans l'idée de se passer de Composer, je pensais à l'API juste pour vérifier les versions. Mais c'est peut-être pas une si mauvaise idée après tout, surtout que ça permet sans doute mieux de gérer la barre de progression.

Posté il y a 6 mois
Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

Pour des packages séparés sur composer tu peux utiliser packagist qui va se charcher de faire l'interface entre ton github et composer (utile dans le cas où tes repos sont en private sur github).

Posté il y a 6 mois
Avatar de bestmomo
bestmomo

Pour faire un CMS sur mesure à base de Laravel, Twill est une solution intéressante, c'est une boîte à outils bien foutue.

Posté il y a 6 mois

Vous ne pouvez pas répondre à ce sujet.