Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP_Codesniffer Local vs Global (Symfony2 Project, Composer, Windows)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP_Codesniffer Local vs Global (Symfony2 Project, Composer, Windows)

    Guten Abend!
    Ich starte ein neues Projekt mit Symfony2 und moechte den PHP_CodeSniffer nutzen.
    Installationsanleitungen (Windows) gibt es viele, insgesamt gibt es zwei Methoden, die ich beide getestet habe:

    Globale Installationsmethode:
    Code:
    composer global require "squizlabs/php_codesniffer=*"
    cd C:\Users\$MyUser\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\CodeSniffer\Standards
    git clone https://github.com/escapestudios/Symfony2-coding-standard.git Symfony2
    phpcs --config-set installed_paths C:\Users\$MyUser\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\CodeSniffer\Standards\Symfony2
    
    C:\Users\$MyUser\AppData\Roaming\Composer\vendor\bin>phpcs -i
    The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend and Symfony2
    Projektbezogene Installation (PHPCS sowie Symfony2 Coding Standards):
    Code:
    cd $meinprojekt
    composer require --dev escapestudios/symfony2-coding-standard:~2.0
    .\vendor\bin\phpcs  --config-set installed_paths vendor/escapestudios/symfony2-coding-standard
    
    C:\Users\$MyUser\test>.\vendor\bin\phpcs -i
    The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend and Symfony2
    Meine Ueberlegung:
    Ich habe mir auf udemy ein Tutorial angeschaut, bei welchem er ihn global installiert und die Symfony2 Standards innerhalb von /php speichert und dorthin verweist.
    Er hat es mittels PEAR getan, mittels Googeln habe ich die Composer Installationsmethode gefunden, welche ich bevorzuge.

    Mittels den bei Google gefunden Anleitungen habe ich folgende Gedanken entwickelt:
    Vorteil Projektbezogen: Bei einer Entwicklung im Team des Projektes sieht das Team automatisch, dass mit dem CodeSniffer (Coding Standards SF2) gearbeitet wird. (composer.json)
    Vortiel Global: PHPCS ist global aufrufbar; Bei der Einrichtung in PHPStorm kann auf eine globale statt eine Projektbasierende Installation vom PHPCS verwiesen werden (Was besser, da 'sauberer' ist?)

    Frage:
    Sollte der CodeSniffer global oder auf Projektbasis installiert werden?
    Ich sehe im Netz beide Variante und frage mich, wie macht man es richtig, wie machst Du das?

    Danke

  • #2
    Konkreter formuliert:
    Bei der Erstellung eines moeglichst qualitativ hochwertigen/durchschaubaren Projektes auf Basis von SF2:

    Sollte CodeSniffer mit den SF2 Coding Standards projektbezogen mit Composer installiert werden oder global 'nur' auf der Dev Machine mit Composer?
    Ist es ueberhaupt ueblich den PHP CodeSniffer in einem Projekt mit einzubinden oder teilt man diese 'Convention' den Entwicklern durch Dokumentation mit?

    Wie macht ihr das, dazu zaehlt z.B. auch Drupalprojekte etc., alles was der CodeSniffer abdeckt.

    Kommentar


    • #3
      Der Sniffer gehört auf jeden Fall als Dev-Abhängigkeit in die composer.json! Ob du dann in deiner IDE diese Version integrierst oder eine globale Sniffer-Version einstellst ist dann egal. Hauptsache, du hast die korrekte Konfiguration.

      Dass man den Sniffer verwenden muss, ist in internen Projekten sehr einfach zu kommunizieren. In Open Source oder ähnlichem gibt es z.B. Die Möglichkeit, automatisch Pull Requests abzulehnen, wenn sich diese nicht an die Standards halten.
      [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

      Kommentar


      • #4
        dreamcatcher Anmerkung zu deiner Signatur...

        Mein Beitrag war hilfreich? Bitte positiv bewerten! (Waage-Symbol beim Post)
        Das "Waage-Symbol" gibt es in der neuen Boardversion nicht mehr.

        [MOD: Verschoben von PHP-Einsteiger]
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Zitat von ChristianK Beitrag anzeigen
          Der Sniffer gehört auf jeden Fall als Dev-Abhängigkeit in die composer.json! Ob du dann in deiner IDE diese Version integrierst oder eine globale Sniffer-Version einstellst ist dann egal. Hauptsache, du hast die korrekte Konfiguration.
          Danke!

          Wenn ich dich richtig verstehe ist es so richtig:
          Global installieren (global require), PHPStorm darauf verlinken und im Softwareprojekt selbst die Composer.json wie folgt konfigurieren:

          Code:
           composer require --dev escapestudios/symfony2-coding-standard:~2.0 .\vendor\bin\phpcs  --config-set installed_paths vendor/escapestudios/symfony2-coding-standard

          Kommentar


          • #6
            Du könntest die IDE auch auf die im Projekt installierte Version verlinken. Das spielt keine grosse Rolle. Ansonsten ja, so hätte ich das gemacht.
            [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

            Kommentar

            Lädt...
            X