Derfor tegnes VG-forsida av PHP

- Først og fremst HTML og CSS vi skal levere til brukeren, forteller Norges største nettavis.

VG.no er Norges største nettavis, med en hel haug forskjellige teknologier. Men selve forsida tegnes fortsatt med PHP. 📸: Ole Petter Baugerød Stokke
VG.no er Norges største nettavis, med en hel haug forskjellige teknologier. Men selve forsida tegnes fortsatt med PHP. 📸: Ole Petter Baugerød Stokke Vis mer

- For det første var det veldig lenge sida vi hadde gjort noe med forsida.

Det forteller redaksjonell utvikler Jarle Grivi Brenna i VG til kode24.

Sammen med Schibsted- og VG-utvikler Mads Erik Forberg var han gjest i ukas kode24-timen, for å blant annet fortelle om den nye VG-forsida de rulla ut i fjor.

En forside som skal levere ferske nyheter så raskt som overhodet mulig til omlag tre millioner unike brukere hver eneste dag.

I kode24-timen avslører de at mye av løsninga ligger i gode, gamle PHP.

Fra desktop til mobil

Det var flere mål med å rulle ut en ny VG-forside, forteller Brenna, som leda arbeidet.

Redaksjonell utvikler Jarle Grivi Brenna i VG. 📸: kode24-timen
Redaksjonell utvikler Jarle Grivi Brenna i VG. 📸: kode24-timen Vis mer

Blant annet å komme seg bort fra en pikselperfekt desking som skapte trøbbel, spesielt på mobiler.

For eksempel fordi en overskrift som frontredigereren hadde satt til å være så og så stor, men som ble for stor for enkelte mobiltelefoner.

- Forsida ble skapt for ti år sida, da desktop var mye viktigere enn i dag, forklarer Brenna.

Men i en verden hvor folk sitter med skjermer i alle størrelser og fasonger, trengte de noe mindre pikselperfekt, og mer fleksibelt. Løsningen ble et eget API mot CMS-et deres, som ga strukturert data tilbake uten masse pikselverdier - altså mer som et hodeløst CMS.

Vil servere HTML og CSS

Det var også et mål å gjøre forsida raskere å laste. Og det handla først og fremst om én ting:

- Vi har redusert endel frontend-kode mot brukeren, forteller Forberg i kode24-timen.

- Vi ville ha en lettere løsning, hvor tanken er at det først og fremst er HTML og CSS vi skal levere til brukeren. Så kan JavaScript bare være sukker på toppen, fortsetter han.

- Det er mye av grunnen til at vi kjører mye PHP.

«Vi hadde som mål i 2013 å bli Norges beste PHP-miljø.»

PHP og Laravel

Med mål om å i størst mulig grad servere VG-forsida som ren HTML og CSS, og med en forside som oppdaterer seg hyppig gjennom hele døgnet, ble altså løsningen å tegne den opp på serveren med PHP.

Et teknologi som ikke akkurat er siste skrik i 2021. Blant annet skrev vi nylig om hvordan Everyday prøver å skrive seg ut av språket.

Schibsted- og VG-utvikler Mads Erik Forberg. 📸: kode24-timen
Schibsted- og VG-utvikler Mads Erik Forberg. 📸: kode24-timen Vis mer

- VG har alltid vært veldig glade i PHP. Vi hadde som mål i 2013 å bli Norges beste PHP-miljø, som jeg har på en eller annen musematte jeg har liggende, humrer Forberg.

- Men det er jo en funfact at VG-forsida fortsatt bruker mye PHP. Vi er fortsatt glade i PHP, men da gjennom PHP-rammeverket Laravel.

Tidligere var det mye bruk av Zend Framework, men dette skal ha vært såpass tungt å sette seg inn for nye utviklere i at VG gikk over til Laravel.

- Vi er veldig fornøyd med Laravel. Og rett før jul ble PHP 8 lansert, med veldig mange bra features. Så jeg trives fortsatt veldig godt med å skrive PHP jeg, altså. Hver ting løser sin greie, sier Forberg.

Vanilje og Preact

Selv om VG-forsida i stor grad serveres med PHP-tegna HTML og CSS, trenger man dette sukkeret, som Forberg kaller det. Blant annet for å vise koronatall på toppen, og diverse moduler nedover sida.

Også sukkeret må VG-utviklerne prøve å gjøre så raskt som mulig å laste.

- Vi kjører mye vanilla JavaScript på forsida. Vi er også veldig glade i React, men på forsida bruker vi Preact, som er et veldig lite alternativ med stort sett de fleste features, forteller Forberg.

- Også har vi ganske heftig code splitting. Når du nærmer deg en eller annen modul på forsida, begynner den å laste først da, fortsetter han, og påpeker:

- Men hovedsakelig er altså alt serverside rendra PHP.

Alt om hvordan resten av VG.no fungerer, hvordan utviklerne i VG jobber og hvordan de begynte å jobbe der, får du i ukas kode24-timen! 🎧