Besoin d'aide ?

Interface de mise à jour de packages / modules

  • Avatar de Nunu
    Membre depuis :
    14/08/2019
    Messages :
    3

    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 !

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2565

    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 ?

  • Avatar de Nunu
    Membre depuis :
    14/08/2019
    Messages :
    3

    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.

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2565

    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.

  • Avatar de CinquièmeDimension
    Membre depuis :
    18/04/2019
    Messages :
    37

    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).

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2565

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

Vous ne pouvez pas répondre à ce sujet.