Git est tellement performant qu’il est de plus en plus intégré dans d’autres solutions pour gérer le versionnement de fichiers. C’est le cas de wikis tels que gollum en ruby.
En PHP, trois approches existent pour consulter et modifier le contenu d’un dépôt Git. Leur choix varie en fonction des possibilités de paramétrage du serveur et des fonctionnalités nécessaires.
En pure PHP avec Glip
Glip est une bibliothèque PHP permettant d’accéder avec n’import quel dépôt Git depuis vos scripts. Le code est écrit en pure PHP5 et reproduit partiellement les fonctionnalités de la commande git en modifiant le contenu du répertoire .git du dépôt. Cette solution a l’avantage de ne pas nécessiter l’installation de Git pour être utilisé.
Via l’extension PHP « php-git »
php-git est une extension native pour PHP 5.3 (développée en C). L’extension fourni un ensemble de classes faciles à utiliser pour lire et modifier un dépôt Git. Après quelques tests, il s’avère que cette solution est la plus performante.
Par abstraction de la commande système avec GitCore
GitCore est une autre bibliothèque PHP5.3 utilisant la commande système git pour interagir avec un dépôt. Cette solution a l’avantage d’offrir toutes les fonctionnalités de git dans vos scripts PHP.
Une API commune pour Git en PHP
Les trois solutions définissent des classes et méthodes PHP différentes. Pour permettre un basculement facile d’une solution à une autre il serait intéressant d’avoir une API commune. Celle de l’extension php-git est déjà très bien documentée et exhaustive. Il faudrait donc refactoriser les librairies Glip et GitCore pour reprendre l’API de php-git.


