Alle noter
PHP Note 01

PHP på dansk

Det startede med et code-review – og endte med at jeg lærte, hvordan PHP-interpreteren virker.

Mand der skriver PHP-kode

Ja, man kan godt lave PHP på dansk: PHP-interpreterens keywords er defineret som strings i filen zend_language_scanner.l, og oversætter man dem, kan man compile en PHP-version hvor echo hedder ekko. Men historien om, hvorfor jeg overhovedet prøvede, starter med et code-review.

En af mine kollegaer havde engang sendt et code-review afsted til en anden kollega på noget simpel kode, som ikke skulle udløse for mange anmodninger om rettelser.

Og dog – han havde i koden skrevet en kommentar på dansk.

Det er selvfølgelig ikke nogen dødssynd at skrive en kodekommentar på dansk, men det ser nu lidt underligt ud:

kloer-fem.phpPHP
/**
* Giv klør fem mellem 2 brugere.
*
* @param User $initiator Den bruger som anmoder om klør fem
* @param User $accepter Den bruger som accepterer klør fem
* @return Coolness Angiver sejheden af highfiven baseret på lydniveauet af klør fem
*/
function giveHighFive(User $initiator, User $accepter): Coolness
{
$clapLoudness = $initiator->highfives($accepter);
return Coolness::fromClapLoudness($clapLoudness);
}

Jokes ved frokostbordet

Spol frem til frokostpausen, hvor det blev diskuteret heftigt. De fleste var selvfølgelig enige om, at koden skal skrives på engelsk, og derfor skal kommentarerne da også være det – det er det eneste der giver mening. Dog fyrede jeg en joke af:

Hvis jeg nu laver PHP-syntaksen på dansk, må jeg så gerne skrive kommentarer på dansk?

Joke ved frokostbordet - engang i foråret 2025

Kan man gøre PHP dansk?

Efter latteren havde lagt sig, blev det selvfølgelig til en samtale om, hvorvidt det overhovedet er muligt – altså at gøre PHP-syntaksen dansk. Her vidste jeg, at en gut tidligere havde forsøgt at “brittanize” alle keywords i PHP. I repositoriet havde Samuel også været så flink at give en guide til, hvordan man ændrer keywords i PHP-interpreteren.

Det var opskriften på at ændre syntaksens sprog, og derfor må det bestemt være muligt at lave PHP på dansk. Egentlig er det ret simpelt:

zend_language_scanner.lC
<ST_IN_SCRIPTING>"echo" {
<ST_IN_SCRIPTING>"ekko" {
RETURN_TOKEN_WITH_IDENT(T_ECHO);
}

Filen zend_language_scanner.l indeholder de strings, der identificerer tokens i PHP-interpreteren. Det er så nemt - dog er der den hage ved det, at compileren selv bruger PHP-filer til tests og benchmarking, som vi er nødt til at ændre, før den vil compile. F.eks. clicommand.inc:

clicommand.incPHP
echo "Requested file '$arg' does not exist.\n";
ekko "Requested file '$arg' does not exist.\n";

Resultatet

Det hele endte med en fork af PHP-kildekoden, som du kan finde på min GitHub. Den ligger som en pull request, og i kommentarerne ligger der et kodestykke, som rent faktisk kan køres, hvis man compiler den version med det “danske hack”, jeg har lavet.

dansk-test.phpPHP
<?php
klasse Test
{
offentlig statisk funktion test()
{
ekko 'hej verden';
}
}
Test::test();

Det kommer nok aldrig i produktion – men det var en sjov måde at lære, hvordan PHP-interpreteren fungerer under motorhjelmen. Og ja, kommentarerne må godt være på dansk.

Mathias Nørreskov Kastrup
Skrevet af
Mathias Nørreskov Kastrup

PHP-udvikler fra Kolding. Her skriver jeg om ting jeg bygger, undersøger og finder interessante nok til at huske.