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
- Plak PHP-code of open een
.php-bestand. De openingstag<?phpis optioneel voor korte fragmenten. - De opgemaakte code verschijnt rechts terwijl je typt.
- 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.
- 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.