Commande GPM

Depuis la sortie de la version 0.9.3, Grav inclut un GPM (Grav Package Manager) qui vous permet d'installer, de mettre à jour, de désinstaller et de lister tous les thèmes et plugins disponibles sur le référentiel Grav, ainsi que de mettre à jour Grav lui-même vers la dernière version .

Comme le Grav CLI, le GPM est un outil de ligne de commande qui oblige l'utilisateur à exécuter des commandes via une interface de ligne de commande, telle que Terminal sous MacOS. Les commandes de style UNIX ne sont pas disponibles en mode natif dans Windows cmd. L'installation du package msysgit sur une machine Windows ajoute Git et Git BASH, qui est une invite de commande alternative qui rend les commandes UNIX disponibles.

Pour démarrer avec GPM, vous pouvez exécuter la commande suivante pour recevoir une liste de toutes les commandes actuellement disponibles :

$ | bin/gpm list

Pour recevoir de l'aide pour une commande spécifique, vous pouvez ajouter de l'aide à la ligne avant la commande :

$ | bin/gpm help install
Pour pouvoir effectuer l'installation, la mise à niveau et l'auto-mise à niveau, PHP doit avoir l'extension php_openssl activée. Si vous obtenez une erreur fatale lors du téléchargement, c'est probablement la cause.

Informations PHP CGI-FCGI.

Pour déterminer si votre serveur exécute cgi-fcgi sur la ligne de commande, tapez ce qui suit :

$ | php -v
  | PHP 5.5.17 (cgi-fcgi) (built: Sep 19 2014 09:49:55)
  | Copyright (c) 1997-2014 The PHP Group
  | Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
  |  with the ionCube PHP Loader v4.6.1, Copyright (c) 2002-2014, by ionCube Ltd.

Si vous voyez une référence à (cgi-fcgi), vous devrez préfixer toutes les commandes bin/gpm avec php-cli. Alternativement, vous pouvez configurer un alias dans votre shell avec quelque chose comme : alias php="php-cli" qui garantira que la version CLI de PHP s'exécute à partir de la ligne de commande.

Comment ça marche ?

GPM télécharge les métadonnées du référentiel à partir de GetGrav.org. Le référentiel contient tous les détails sur les packages disponibles et GPM est également capable de déterminer si l'un de ces packages est déjà installé et s'il doit être mis à jour.

Le référentiel lui-même est mis en cache localement, sur la machine d'instance Grav exécutant la commande, pendant 24 heures. Toute autre demande après la génération du cache ne contactera pas le serveur GetGrav.org, mais servira plutôt à partir du référentiel stocké localement. Cette approche garantit une réponse beaucoup plus rapide.

La plupart des commandes (listées ci-dessous) sont livrées avec l'option --force (-f) qui permet de forcer une nouvelle récupération du référentiel. Cela pourrait être extrêmement utile dans le cas où une mise à jour est connue et que l'utilisateur ne veut pas attendre un cycle complet de 24 heures avant que le cache ne soit effacé.

Commandes.

Ci-dessous, nous avons décomposé toutes les commandes disponibles pour GPM. Pour exécuter une commande, lancez votre application de terminal préférée et depuis la racine de votre instance Grav, vous pouvez taper bin/gpm <command>.

Index.

La commande index affiche une liste de toutes les ressources disponibles dans le référentiel Grav, organisées par thèmes et plugins.

Commande GPM 1

Chaque ligne affiche le nom, le slug, la version et s'il est déjà installé ou non.

Dans cette vue, vous pouvez également déterminer rapidement s'il existe une nouvelle version de l'une des ressources que vous avez déjà installées.

Par exemple, si nous avions une très ancienne version d'Antimatière (v1.1.1), mais que la dernière version était la v1.1.3, elle apparaîtra dans l'index comme indiqué ci-dessous.

Commande GPM 2

Vous pouvez utiliser l'option --installed-only` pour afficher uniquement l'état de vos plugins et thèmes installés.

Info.

La commande info affiche les détails du package souhaité, tels que la description, l'auteur, la page d'accueil, etc.

Commande GPM 3

Vous serez également invité à consulter le journal des modifications du plugin/thème via cette option.

Installer.

La commande install fait exactement ce qu'elle indique. Elle installe une ressource du référentiel sur votre instance Grav actuelle avec une simple commande.

La commande détectera également si une ressource est déjà installée, ou si elle est symboliquement liée, et vous demandera quoi faire.

Vous pouvez également installer plusieurs ressources à la fois en séparant les slugs par un espace.


Vous pouvez utiliser l'option --all-yes (-y) pour ignorer les invites. Les ressources existantes seront remplacées et s'il s'agit de liens symboliques, elles seront automatiquement ignorées.

Mise à jour.

La commande update affiche une liste de ressources pouvant être mises à jour et fonctionne de la même manière que pour install.

Commande GPM 4

Vous pouvez également limiter les mises à jour à des ressources spécifiques uniquement.

Commande GPM 5


Désinstaller.

La commande uninstall supprime un thème ou un plug-in installé et efface le cache. Parce que Grav est purement un système de fichiers, la désinstallation d'un thème ou d'un plugin signifie la suppression physique du dossier.

La commande détectera également si une ressource est symboliquement liée et vous demandera quoi faire.

Vous pouvez également désinstaller plusieurs ressources à la fois en séparant les slugs par un espace.

Vous pouvez utiliser l'option --all-yes (-y) pour ignorer les invites. Si une ressource est détectée comme lien symbolique, elle sera automatiquement ignorée.

Auto-mise à niveau.

Le self-upgrade (ou selfupgrade) vous permet de mettre à jour Grav vers la dernière version disponible. Si aucune mise à niveau n'est nécessaire, un message vous le dira, notant également la version que vous utilisez actuellement et la date de publication de la version.

Il est fortement conseillé de toujours faire une sauvegarde avant d'effectuer une auto-mise à jour (voir Création d'une sauvegarde dans la section CLI.

L'auto-mise à niveau ne met à niveau que des parties de votre instance Grav, comme le dossier system/, vendor, index.php, et autres. Vos dossiers user et images ne seront jamais touchés.

Commande GPM 6


Informations importantes pour les développeurs.

Plans.

Avec l'introduction de GPM, nous avons maintenant des règles strictes concernant les blueprints valides. Qu'il s'agisse d'un thème ou d'un plugin que vous développez, vous devez toujours vous assurer que les blueprints sont correctement formatés.

Un blueprint peut servir plusieurs objectifs différents, y compris la définition de l'identité de votre ressource. Veuillez vous référer aux Blueprints pour une documentation plus détaillée sur ce que sont les Blueprints et comment ils doivent être compilés.

Releases.

Le référentiel Grav est actualisé toutes les heures et détecte automatiquement les nouvelles versions, cela implique qu'en tant que développeur, vous avez suivi nos exigences de contribution.

De votre côté, tout ce que vous avez à faire est de vous assurer que vous avez mis à jour les plans avec la nouvelle version, et que vous avez marqué et publié la nouvelle version. Le référentiel Grav fera le reste pour vous et dès que votre version sera récupérée, elle sera disponible pour tout le monde via le site Web de Grav ou via GPM.

Ajouter votre ressource au dépôt.

(1) Suivez les instructions de la section Thème/Plugin Release Process.

Pour ajouter votre nouveau plugin/thème au référentiel Grav, veuillez ouvrir un problème Grav sur GitHub. Vous pouvez également utiliser ce lien précompilé. Assurez-vous de mettre à jour le corps vers user/repository approprié.

Plus de détails sur ce que fait le plugin/thème sont les bienvenus et peuvent être placés dans le numéro.

Sachez également qu'avant d'ajouter un référentiel, l'équipe Grav inspectera votre plugin/thème en s'assurant qu'il correspond aux normes Grav. L'équipe peut également répondre avec des demandes d'informations supplémentaires, suggérer des améliorations mineures, etc. avant de fermer le problème et d'ajouter le plugin/thème.


NDT : J'ai supprimé à cet endroit ce qui semble être une erreur d'affichage de la documentation d'origine advanced/grav-development#themeplugin-release-process.