dbwebb-se / ramverk1

Course material for the course ramverk1
Other
1 stars 0 forks source link

Snart kursstart, firas försiktigt med not om release av PHP 8.0 #6

Open mosbth opened 3 years ago

mosbth commented 3 years ago

I slutet av november släpper PHP version 8.0. En feature är JIT, Just In Time compilation. JIT, enkelt sagt, är en feature som kompilerar PHP-koden ned till bytecode alt maskinkod, under tiden som programmet exekverar, och tanken är att exekveringen skall gå snabbare än när man interpreterar källkoden. De använder något som heter DynASM (Dynamic Assembler) för att generera "native" kod för varje operativsystem. Se vad DynASM är https://luajit.org/dynasm.html Det ska blir spännande att se vad denna feature innebär.

Rent allmänt så är det bra kunskap att se hur ett sådant här projekt hanteras. Dels finns det en hantering kring RFC (Request For Comments) där man föreslår features och sedan röstar man om att en feature skall inkluderas i en release.

Se alla features för PHP 8.0: https://wiki.php.net/rfc#php_80

Sen finns det ett releaseprojekt med olika releases som testas. Det är en hantering där man släpper alpha releases, sen fryser man vilka features som skall ingå. Sedan blir det beta-releases följt av releasekandidater och när buggarna uteblir deklarerar man release som GA, General Available. Releasehantering av PHP 8.0: https://wiki.php.net/todo/php80

Samma (liknande) hantering ser ni i alla större professionella mjukvaruprojekt, oavsett om det är opensource eller om det är industriprojekt.

"Svaga projekt" kan delvis identifieras genom avsaknaden av processer, styrning och tydlighet i kravhantering och i releasehantering och därmed kvalitetssäkran.

Generellt så finns det en releashantering där en release har en viss levnadstid där man definierar hur en release supportas (aktiv, enbart säkerhetsfixar) och när en release har EOL (end of life. 7.3 har aktiv support fram till slutet av november, 7.4 har till nästa november. 7.2 har EOL nu i november. Releaser och nuvarande supportade versioner: https://www.php.net/supported-versions.php

Vill man få känslan av att "jobba med PHP 8.0" så kan man alltid köra lite docker. Se detaljer om imagen: https://hub.docker.com/r/keinos/php8-jit

$ docker run --rm -it keinos/php8-jit
... imagen laddas ned och kontainern startar upp ...
Status: Downloaded newer image for keinos/php8-jit:latest
Interactive shell                                        

php > echo phpversion();                                 
8.0.0-dev                                                
php >