CakePHP 5.0 er landet og med en masse forbedringer til udvikleroplevelsen

Author Thumb
ny version af CakePhp

Opgradering til PHP 8.1 og forbedret typesystem

Igennem de seneste par år, har PHP arbejdet hårdt på at forbedre typesystemet. PHP har, ligesom JavaScript, ofte fået kritik for at have et meget løst typesystem, hvor alting kan være alting. Men i de seneste PHP versioner, specifikt siden PHP 8.1, er typesystemet blevet opgraderet markant med gode muligheder og funktioner til at sikre dine typer i dit PHP-program. Dette udnytter CakePHP også i den nye version 5.0, ved at kræve en minimumsversion af PHP på 8.1.

Der er god grund til at opgradere til PHP 8.1 og CakePHP 5.0. I tidligere versioner af CakePHP, har man ofte brugt et array til options på forskellige funktioner, foreksempel når man skulle lave kald til databasen. I den nye version er dette array blevet udskiftet med navngivne parametre. Det betyder at du nu selv bestemmer rækkefølgen af disse parametre og at du samtidig får meget bedre Intellisense fra din IDE, når du skal bruge disse funktioner.

Et eksempel på navngivne parametre ved et databasekald

Hvis du opgraderer fra den gamle PHP minimumsversion 7.4 til 8.1 vil du opleve en markant hastighedsforbedring, da PHP 8.0 og frem nu bruger Just-in-time compilation. Dette er en teknik hvor koden bliver kompileret til maskinkode inden den bliver eksekveret, hvilket gør programmet markant hurtigere. Før PHP 8.0 blev din PHP-kode eksekveret i en virtuel maskine, hvilket er langsommere end det nye JIT.

Forældede moduler og funktioner er nu blevet fjernet

I hver ny version af CakePHP, er der moduler og funktioner der bliver markeret som forældet og de i en fremtidig version vil blive fjernet helt. Den helt store ændring indenfor fjernet kode, er at modulet Auth nu er blevet fjernet helt fra CakePHP kernen. Det er blevet udviklet til at være sit eget plugin kaldet Authentication. Tanken bag dette er simpelthen oprydning og simplificering. At man ikke bør inkludere kode i sit program man ikke anvender alligevel, og her er Authentication en af dem. Det nye plugin skal også opsættes anderledes end det gamle, og alt dette kan du læse mere om i dokumentationen til pluginnet.

Når du i SQL skal gruppere eller sortere dine resultater ud fra nogle parametre, bruger du keywordet `GROUP BY` og `ORDER BY`, men i CakePHP har dette heddet `group` eller `order`. Dette er nu blevet omdøbt til `groupBy` og `orderBy` for at holde det konsekvent med SQL. Endnu en ting der gør udvikleroplevelsen bedre og simplere i CakePHP end tidligere.

Det er nu også muligt at indlæse plugins direkte fra en config fil. Førhen har man skulle tilføje plugins direkte i sin `Application.php` fil og derfor ville de også blive committed til din Git versionskontrol, men i CakePHP 5.0 er det nu muligt at indlæse plugins dynamisk ved hjælp af en config fil, f.eks. `config/plugins.php`.

CakePHP dokumentation på indlæsning af plugins via en config fil.