Maison >développement back-end >tutoriel php >Rédaction de crochets PHP Git avec revue statique
Git Crochets: automatiser les tâches de développement avec PHP et revue statique
Pour les utilisateurs de Git assaisonnés, les crochets Git sont probablement familiers. Pour les crochets GIT non initiés, les scripts sont déclenchés par des événements GIT spécifiques (commit, push, recevoir, etc.), fonctionnant sur le client et le serveur. Bien que traditionnellement écrits en bash, ils peuvent utiliser diverses langues. PHP, bien que pas idéal pour les scripts de coquille, est devenu plus approprié grâce à la revue statique de Samuel Parkinson. Cette bibliothèque vous permet d'écrire des crochets GIT nativement en PHP, en tirant éventuellement des classes de base.
Les crochets Git offrent de nombreux avantages, notamment la liaison, les messages de validation de la vérification des sorts, l'application des normes de codage et le compositeur exécutif. La revue statique améliore cela en fournissant une approche centrée sur le PHP.
Avantages clés de la revue statique:
Installation:
Installez une revue statique via le compositeur: composer require sjparkinson/static-review
Exemple: un crochet pré-engagé
Examinons un exemple de crochet pré-engagé du référentiel de revue statique. Ce crochet démontre la fonctionnalité principale:
<code class="language-php">#!/usr/bin/env php <?php // ... (Autoloader inclusion and error handling – as in original example) ... // ... (Class imports – as in original example) ... $reporter = new Reporter(); $climate = new CLImate(); $Git = new GitVersionControl(); $review = new StaticReview($reporter); // Add reviews (LineEndingsReview, PhpLeadingLineReview, NoCommitTagReview, PhpLintReview, ComposerLintReview – as in original example) // Review staged files $review->review($Git->getStagedFiles()); // Report results if ($reporter->hasIssues()) { // ... (Error reporting – as in original example) ... } else { // ... (Success message – as in original example) ... }</code>
Ce crochet utilise plusieurs classes de révision pour effectuer des vérifications sur les fichiers mis en scène. Chaque classe Review
étend AbstractReview
et implémente ReviewInterface
, nécessitant canReview()
(détermine si une revue est applicable) et review()
(effectue la revue) Méthodes.
Création d'une revue personnalisée: Vérification var_dump()
Créons un examen personnalisé pour détecter les appels persistants var_dump()
. Créez une nouvelle classe (par exemple, VarDumpReview.php
) dans une structure de répertoire conforme PSR-4 (par exemple, src/SitePoint/StaticReview/PHP
).
<code class="language-php"><?php namespace SitePoint\StaticReview\PHP; // ... (Imports – as in original example) ... class VarDumpReview extends AbstractReview { public function canReview(FileInterface $file) { return in_array($file->getExtension(), ['php', 'phtml']); } public function review(ReporterInterface $reporter, FileInterface $file) { $cmd = sprintf('grep --fixed-strings --ignore-case --quiet "var_dump" %s', $file->getFullPath()); $process = $this->getProcess($cmd); $process->run(); if (! $process->isSuccessful()) { // Note: Changed to !isSuccessful() $reporter->error('A call to `var_dump()` was found', $this, $file); } } }</code>
Cette revue vérifie les fichiers PHP pour var_dump()
en utilisant grep
. Si elle est trouvée, une erreur est signalée.
Installation du crochet:
./vendor/bin/static-review.php hook:install hooks/example-pre-commit.php .git/hooks/pre-commit
La revue statique permet aux développeurs de créer des crochets GIT sophistiqués dans PHP, améliorant les workflows de développement et la qualité du code. Sa personnalisation et sa facilité d'utilisation en font un atout précieux pour tout projet PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!