Maison >développement back-end >tutoriel php >Rédaction de crochets PHP Git avec revue statique

Rédaction de crochets PHP Git avec revue statique

Lisa Kudrow
Lisa Kudroworiginal
2025-02-17 10:27:131058parcourir

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.

Writing PHP Git Hooks with Static Review

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:

  • Développement du crochet PHP Git natif.
  • Amélioration de l'adéquation de PHP pour la création de crochets GIT.
  • Installation basée sur des compositeurs pour une intégration facile.
  • Création de classe de révision personnalisée pour des besoins spécifiques.
  • Automatisation des tâches de développement, conduisant à un meilleur flux de travail et à la qualité du code.

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.

Writing PHP Git Hooks with Static Review

Installation du crochet:

  1. Ajoutez la critique personnalisée à votre script de pré-engagement.
  2. Installez le crochet à l'aide de l'outil de ligne de commande de Static Review: ./vendor/bin/static-review.php hook:install hooks/example-pre-commit.php .git/hooks/pre-commit

Writing PHP Git Hooks with Static Review

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn