DevToolPal
NL

PHP-formatter

Maak PHP-code netjes op in PER Coding Style (PSR-12) met de officiële Prettier PHP-plugin.

Draait lokaal, wordt nooit geüpload

Opties

Inspringing
Accolades

Invoer

0 tekens · 0 B

Uitvoer

0 tekens · 0 B

Wat deze tool doet

De PHP-formatter maakt van rommelige, geminificeerde of inconsequent ingesprongen PHP nette code die de codestandaard van de community volgt. Hij kan overweg met moderne syntaxis, waaronder getypeerde en readonly properties, constructor promotion, arrow functions, enums, match-expressies en attributen.

Hij draait Prettier met de officiële PHP-plugin, dezelfde combinatie die veel Laravel- en Symfony-teams in hun editor en pre-commit hooks gebruiken, dus het resultaat komt overeen met wat je eigen tooling zou opleveren.

Zo gebruik je het

  1. Plak PHP-code of open een .php-bestand. De openingstag <?php is optioneel voor korte fragmenten.
  2. De opgemaakte code verschijnt rechts terwijl je typt.
  3. Pas de opties aan:
    • Inspringing: 4 spaties is de PSR-standaard; 2 spaties en tabs zijn ook beschikbaar.
    • Regelbreedte: langere regels worden afgebroken waar de syntaxis dat toelaat.
    • Accolades: zet accolades van klassen en functies op de volgende regel (PER / PSR-12) of op dezelfde regel.
    • PHP-versie: de oudste versie waarop de code moet draaien.
    • Enkele aanhalingstekens en Afsluitende komma’s voor lijsten over meerdere regels.
  4. Kopieer of download het resultaat.

Als de code een syntaxfout bevat, noemt de melding wat de parser verwachtte en de regel en kolom waar hij stopte.

Voorbeeld

Het voorbeeld is een controller in Laravel-stijl waarin alles op elkaar gepropt staat: een gegroepeerd use-statement, een property-array, constructor promotion, een validatieaanroep, een if op één regel en een array_map met een arrow function. Na het opmaken staat de accolade van elke methode op een eigen regel, krijgen operatoren en => spaties, wordt de body van de if uitgeklapt en worden de lange response()->json()-aanroepen afgebroken met één array-item per regel en afsluitende komma’s.

Wat hij niet verandert

De formatter verandert alleen de layout. Hij hernoemt geen variabelen, sorteert geen use-statements, zet array() niet om naar de korte syntaxis en repareert geen logica. Commentaar, inclusief PHPDoc-blokken, blijft behouden en wordt samen met de omliggende code opnieuw ingesprongen.

Tips

  • Gebruik dezelfde regelbreedte en PHP-versie als in de Prettier- of PHP-CS-Fixer-configuratie van je project, zodat je diffs niet vol onnodige wijzigingen staan.
  • Een fragment uit een log of stacktrace opmaken maakt het veel leesbaarder.
  • Deel je code in een issue, maak die dan eerst op, zodat reviewers zich kunnen richten op wat hij doet.

Veelgestelde vragen

› Welke codestijl volgt hij?

Standaard volgt de uitvoer de PER Coding Style, de opvolger van PSR-12, gepubliceerd door PHP-FIG. Accolades van klassen en methoden komen op een eigen regel, accolades van controlestructuren blijven op dezelfde regel en de inspringing is vier spaties.

› Waarom doet de PHP-versie ertoe?

Sommige syntaxis is pas vanaf een bepaalde versie geldig. Afsluitende komma's in parameterlijsten hebben bijvoorbeeld PHP 8.0 nodig, dus bij een oudere doelversie laat de formatter ze weg. Kies de oudste versie waarop je code moet draaien.

› Kan hij bestanden opmaken waarin HTML en PHP door elkaar staan?

Ja. Templatebestanden met inline HTML en korte echo-tags worden ondersteund. De PHP-delen worden opgemaakt en de HTML ertussen blijft zoals hij is.

› Wordt mijn code geüpload?

Nee. De formatter draait volledig in je browser en er wordt niets naar een server gestuurd.