{"id":50867,"date":"2023-03-07T10:41:55","date_gmt":"2023-03-07T10:41:55","guid":{"rendered":"https:\/\/kinsta.com\/se\/?p=50867&#038;preview=true&#038;preview_id=50867"},"modified":"2023-09-21T09:26:33","modified_gmt":"2023-09-21T09:26:33","slug":"byt-till-php-8","status":"publish","type":"post","link":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/","title":{"rendered":"Att byta till PHP 8.x i fyra steg &#8211; en intervju med Juliette Reinders Folmer"},"content":{"rendered":"<p>Att uppgradera en WordPress-webbplats, ett plugin eller ett tema till en ny version av PHP \u00e4r en uppgift som \u00e5terkommer regelbundet. Men hur g\u00f6r du detta s\u00e5 effektivt som m\u00f6jligt? Hur vet du att du inte f\u00f6rbiser n\u00e5got? Finns det en f\u00e4rdplan f\u00f6r det?<\/p>\n<p>I den h\u00e4r artikeln tar vi itu med dessa fr\u00e5gor (och fler). Vi tittar exempelvis p\u00e5 vad som kr\u00e4vs f\u00f6r en smidig \u00f6verg\u00e5ng till PHP 8.x f\u00f6r din WordPress-webbplats, dina plugins eller ditt tema, inklusive en f\u00e4rdplan.<\/p>\n<p>Vi g\u00f6r detta utifr\u00e5n en intervju som vi genomf\u00f6rde med PHP-experten Juliette Reinders Folmer. Hon \u00e4gnar st\u00f6rre delen av sitt dagliga liv \u00e5t programmering och allt runt omkring. Hennes fokus ligger dessutom fr\u00e4mst p\u00e5 projekt med \u00f6ppen k\u00e4llkod, inklusive WordPress.<\/p>\n<p>\u00c4r du ocks\u00e5 redo att g\u00f6ra \u00f6verg\u00e5ngen smidigt? \u00c4r du nyfiken p\u00e5 v\u00e5r steg f\u00f6r steg-plan? L\u00e5t oss d\u00e5 k\u00f6ra ig\u00e5ng direkt!<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>PHP 8.x &#8211; vad som har \u00e4ndrats<\/h2>\n<p>F\u00f6r en \u00f6versikt \u00f6ver f\u00f6r\u00e4ndringarna s\u00e5 rekommenderar vi exempelvis artiklarna nedan:<\/p>\n<ul>\n<li>Versionsh\u00e4nvisningar f\u00f6r<a href=\"https:\/\/www.php.net\/releases\/8.0\/en.php\" target=\"_blank\" rel=\"noopener noreferrer\"> PHP 8.0<\/a> och <a href=\"https:\/\/www.php.net\/releases\/8.1\/en.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.1<\/a><\/li>\n<li>Migreringsguide f\u00f6r <a href=\"https:\/\/www.php.net\/manual\/en\/migration80.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.0<\/a> och <a href=\"https:\/\/www.php.net\/manual\/en\/migration81.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.1<\/a><\/li>\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2020\/11\/23\/wordpress-and-php-8-0\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress och PHP 8.0<\/a> och <a href=\"https:\/\/make.wordpress.org\/core\/2022\/01\/10\/wordpress-5-9-and-php-8-0-8-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">nuvarande status<\/a><\/li>\n<li><a href=\"https:\/\/kinsta.com\/se\/blog\/php-8\/\">Nyheter i PHP 8.0<\/a> och <a href=\"https:\/\/kinsta.com\/blog\/php-8-1\/\">PHP 8.1<\/a><\/li>\n<li><a href=\"https:\/\/kinsta.com\/se\/blog\/php-8-2\/\">Vad \u00e4r nytt i PHP 8.2<\/a> och <a href=\"https:\/\/www.php.net\/manual\/en\/migration82.php\">PHP 8.2 migreringsguide<\/a>.<\/li>\n<\/ul>\n<p>Efter att ha l\u00e4st dessa artiklar s\u00e5 \u00e4r du helt uppdaterad om vad som har \u00e4ndrats i PHP 8.x. Du f\u00e5r dessutom koll p\u00e5 vad du beh\u00f6ver g\u00f6ra f\u00f6r att f\u00e5 dina PHP-projekt att fungera utan problem.<\/p>\n<p>Om du \u00e4r os\u00e4ker p\u00e5 hur du kommer ig\u00e5ng s\u00e5 \u00e4r det inga problem. I samtalet med Juliette s\u00e5 diskuterade vi detta i detalj. Den h\u00e4r artikeln kommer sedan att ge en s\u00e5 fullst\u00e4ndig f\u00f6rklaring som m\u00f6jligt om hur du kan byta till PHP 8.x.<\/p>\n<p>Vi kommer dessutom att f\u00f6rklara i informativa rutor hur du utf\u00f6r olika operationer i <a href=\"https:\/\/kinsta.com\/se\/mykinsta\/\">MyKinsta<\/a>. Det \u00e4r v\u00e5r egen kontrollpanel f\u00f6r alla dina WordPress-webbplatser, applikationer och databaser.<\/p>\n<h2>Byte till PHP 8.x: S\u00e5 h\u00e4r kommer du ig\u00e5ng<\/h2>\n<p>Att byta till PHP 8.x l\u00e5ter enkelt, och tekniskt sett s\u00e5 st\u00e4mmer detta. M\u00e5nga hostar l\u00e5ter dig ange vilken version av PHP som du vill anv\u00e4nda f\u00f6r din webbplats i administrat\u00f6rspanelen. P\u00e5 Kinsta s\u00e5 kan du <a href=\"https:\/\/kinsta.com\/se\/changelog\/php-8\/\">byta PHP-version<\/a> med ett enda klick i instrumentpanelen MyKinsta.<\/p>\n<p>Men innan du g\u00f6r detta s\u00e5 finns det n\u00e5gra saker som du m\u00e5ste vara s\u00e4ker p\u00e5. Beroende p\u00e5 din kunskaps- och erfarenhetsniv\u00e5 s\u00e5 rekommenderar vi exempelvis f\u00f6ljande:<\/p>\n<ul>\n<li>Har du byggt din egen WordPress-webbplats med standardteman och plugins utan att ha n\u00e5gon st\u00f6rre kunskap om PHP? D\u00e5 rekommenderas det att du anlitar en utvecklare eller en agentur f\u00f6r att unders\u00f6ka om din webbplats \u00e4r l\u00e4mplig att k\u00f6ra p\u00e5 PHP 8.x. Letar du efter en tredje part som kan hj\u00e4lpa dig med detta? Titta d\u00e5 p\u00e5 <a href=\"https:\/\/kinsta.com\/se\/partners\/\">v\u00e5r sida f\u00f6r Partners<\/a> d\u00e4r flera p\u00e5litliga f\u00f6retag som kan hj\u00e4lpa dig listas.<\/li>\n<li>Om din WordPress-webbplats byggdes av en extern part, en utvecklare eller en agentur, kontakta dem f\u00f6r att fr\u00e5ga om din webbplats kan k\u00f6ras med PHP 8.x.<\/li>\n<li>Om du har byggt din WordPress-webbplats &#8211; exempelvis med ett eget anpassat tema eller egenutvecklade plugins &#8211; s\u00e5 har vi en f\u00e4rdplan f\u00f6r dig nedan.<\/li>\n<\/ul>\n<p>Tillh\u00f6r din webbplats n\u00e5gon av de tv\u00e5 f\u00f6rsta kategorierna? D\u00e5 uppmanar vi dig givetvis att l\u00e4sa resten av artikeln. Vi rekommenderar dock inte att du b\u00f6rjar testa din webbplats f\u00f6r PHP 8-kompatibilitet sj\u00e4lv. L\u00e4mna detta till proffsen.<\/p>\n<p>Oavsett vad du v\u00e4ljer s\u00e5 r\u00e5der vi dig att inte bara byta din live-webbplats till PHP 8 och &#8221;se om det fungerar&#8221;. \u00c4r du nyfiken p\u00e5 hur din webbplats kommer att se ut, och kan inte v\u00e4nta p\u00e5 att se den k\u00f6ras med PHP 8? B\u00f6rja d\u00e5 med att testa i en iscens\u00e4ttningsmilj\u00f6. Med en bra host s\u00e5 kan du enkelt <a href=\"https:\/\/kinsta.com\/se\/blog\/wordpress-staging\/\">s\u00e4tta upp en iscens\u00e4ttningsmilj\u00f6<\/a>.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Det \u00e4r enkelt att skapa en iscens\u00e4ttningsmilj\u00f6 med Kinsta.<\/p>\n<p>I <a href=\"https:\/\/my.kinsta.com\/?lang=sv?lang=en\">MyKinsta<\/a>\u00a0s\u00e5 klickar du p\u00e5 <strong>WordPress-webbplatser\u00a0<\/strong>i den v\u00e4nstra navigeringen. Du kommer nu att se en lista \u00f6ver dina WordPress-webbplatser\/installationer. V\u00e4lj sedan den webbplats som du vill skapa en iscens\u00e4ttningsmilj\u00f6 f\u00f6r, klicka p\u00e5 <strong>Milj\u00f6v\u00e4ljare\u00a0<\/strong>bredvid webbplatsens namn och v\u00e4lj <strong>Skapa en ny milj\u00f6\u00a0<\/strong>fr\u00e5n rullgardinsmenyn. I modalrutan <strong>Skapa en ny milj\u00f6 <\/strong>s\u00e5\u00a0namnger du din milj\u00f6, v\u00e4ljer <strong>Standardmilj\u00f6<\/strong> och klickar p\u00e5 knappen <strong>Skapa en ny milj\u00f6 <\/strong>.<\/p>\n<p>D\u00e4refter s\u00e5 ombeds du att v\u00e4lja den milj\u00f6 som du vill skapa. V\u00e4lj alternativ 1, <strong>Klona en befintlig milj\u00f6<\/strong>. Klicka sedan p\u00e5 knappen <strong>Skapa en ny milj\u00f6<\/strong>. D\u00e5 b\u00f6rjar skapandet av den nya milj\u00f6n. Detta kan ta n\u00e5gra minuter. N\u00e4r processen \u00e4r klar s\u00e5 kan du v\u00e4lja den nya standardmilj\u00f6n f\u00f6r iscens\u00e4ttning fr\u00e5n rullgardinsmenyn <strong>Milj\u00f6v\u00e4ljare\u00a0<\/strong>bredvid webbplatsens namn.<\/p>\n<p>L\u00e4s mer om hur du <a href=\"https:\/\/kinsta.com\/docs\/wordpress-hosting\/staging-environment\/\">skapar en iscens\u00e4ttningsmilj\u00f6<\/a>.<\/p>\n<\/aside>\n\n<figure id=\"attachment_147928\" aria-describedby=\"caption-attachment-147928\" style=\"width: 2864px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147928 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/mykinsta-create-new-environment-eng0.png\" alt=\"MyKinsta - Skapa en ny milj\u00f6\" width=\"2864\" height=\"968\"><figcaption id=\"caption-attachment-147928\" class=\"wp-caption-text\">MyKinsta &#8211; Skapa en ny milj\u00f6<\/figcaption><\/figure>\n<p>I iscens\u00e4ttningsmilj\u00f6n s\u00e5 kan du aktivera PHP 8.x och se om uppdateringen fungerar bra med din webbplats. Det \u00e4r dessutom m\u00f6jligt att arbeta med en lokal kopia av din webbplats. Med v\u00e5rt <a href=\"https:\/\/kinsta.com\/se\/devkinsta\/\">kostnadsfria utvecklingsverktyg DevKinsta<\/a>\u00a0s\u00e5 kan du enkelt importera din webbplats fr\u00e5n <a href=\"https:\/\/kinsta.com\/se\/mykinsta\/\">instrumentpanelen i MyKinsta<\/a>. Du kan sedan \u00e4ndra PHP-versionen till 8.0 eller 8.1.<\/p>\n<p>Om du inte m\u00f6ter n\u00e5gra problem i iscens\u00e4ttningsmilj\u00f6n s\u00e5 beh\u00f6ver detta inte betyda att det inte finns n\u00e5gra problem. I f\u00e4rdplanen nedan s\u00e5 f\u00e5r du veta varf\u00f6r.<\/p>\n<h2>Testning av kompatibilitet med PHP 8.x: F\u00e4rdplan<\/h2>\n<p>Testning: nyckelordet till bra programvara. Detta g\u00e4ller \u00e4ven f\u00f6r WordPress-webbplatser och deras komponenter, s\u00e5som teman, plugins och WordPress-k\u00e4rnan. Det \u00e4r helt enkelt ett s\u00e4tt att se till att det inte h\u00e4nder saker som du inte vill ska h\u00e4nda.<\/p>\n<p>Ett programvaru-utvecklingsprojekt best\u00e5r till stor del av testning. I den h\u00e4r artikeln s\u00e5 tittar vi s\u00e4rskilt p\u00e5 de tester som kan hj\u00e4lpa dig att f\u00e5 \u00f6verg\u00e5ngen till PHP 8.x att g\u00e5 smidigt. V\u00e5r artikel om DevOps-verktyg har exempelvis ett avsnitt med en <a href=\"https:\/\/kinsta.com\/blog\/devops-tools\/#devops-testtools\">samling av verktyg<\/a> som du kan anv\u00e4nda.<\/p>\n<p>F\u00f6ljande typer av tester diskuteras i det h\u00e4r blogginl\u00e4gget:<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"-1\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<p>L\u00e5t oss titta n\u00e4rmare p\u00e5 de olika typerna av tester som vi kan utf\u00f6ra.<\/p>\n<h3>Statisk analys (eller statisk testning)<\/h3>\n<p>Det f\u00f6rsta steget som du kan vidta som PHP-utvecklare \u00e4r att utf\u00f6ra en statisk analys av din kod med olika verktyg. Statisk analys \u00e4r en process som analyserar programvara utan att exekvera koden. Med statisk analys s\u00e5 \u00e4r det m\u00f6jligt att uppt\u00e4cka fel, uppt\u00e4cka problem med PHP 8.x-kompatibilitet, genomdriva kodningsstandarder (exempelvis\u00a0<a href=\"https:\/\/make.wordpress.org\/core\/handbook\/best-practices\/coding-standards\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress kodningsstandarder<\/a>). Det \u00e4r dessutom m\u00f6jligt att \u00e4ndra och rensa upp koden.<\/p>\n<h4>Verktyg f\u00f6r statisk analys<\/h4>\n<p>Du kan utf\u00f6ra en statisk analys med olika verktyg, exempelvis:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/PHPCompatibility\/PHPCompatibility\" target=\"_blank\" rel=\"noopener noreferrer\">PHPCompatibility<\/a><\/li>\n<li><a href=\"https:\/\/psalm.dev\/\" target=\"_blank\" rel=\"noopener noreferrer\">Psalm<\/a><\/li>\n<li><a href=\"https:\/\/phpstan.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHPStan<\/a><\/li>\n<\/ul>\n<p>I skrivande stund s\u00e5 st\u00f6ds inte alla kontroller av PHP 8.1 i den senaste versionen av PHPCompatibility. Kontroller av PHP 8.1 kan finnas i utvecklingsutg\u00e5van. Se d\u00e4rf\u00f6r till att du anv\u00e4nder dessa (f\u00f6r tillf\u00e4llet) n\u00e4r du anv\u00e4nder PHPCompatibility f\u00f6r att analysera ditt projekt och se vilka fel\/rekommendationer som finns.<\/p>\n<p>Kontroller av PHP 8.1 kommer snart att sl\u00e4ppas i en ny <em>st\u00f6rre <\/em>version. Vill du h\u00e5lla dig uppdaterad om detta och har ett GitHub-konto? \u00d6ppna d\u00e5\u00a0<a href=\"https:\/\/github.com\/PHPCompatibility\/PHPCompatibility\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub-arkivet f\u00f6r PHPCompatibility<\/a> och navigera till <strong>Titta<\/strong> -&gt; <strong>Anpassning<\/strong> -&gt; <strong>Utg\u00e5vor<\/strong>, d\u00e4r du kan v\u00e4lja att bli meddelad n\u00e4r en ny version sl\u00e4pps.<\/p>\n<p>PHPCompatibility, som endast testar kompatibilitet f\u00f6r en viss version (eller ett antal versioner) av PHP, \u00e4r l\u00e4tt att konfigurera. Du f\u00e5r b\u00e4st resultat om du k\u00f6r en <a href=\"https:\/\/github.com\/PHPCompatibility\/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions\" target=\"_blank\" rel=\"noopener noreferrer\">testversion<\/a> &#8211; exempelvis 8.0+ (8.0 och upp\u00e5t) &#8211; inom PHPCompatibility.<\/p>\n<p>Du b\u00f6r dock h\u00e5lla utkik efter f\u00f6r\u00e5ldrade eller borttagna funktioner, \u00e4ndrade standardv\u00e4rden f\u00f6r funktionsparametrar samt om du ska anv\u00e4nda concat utan parenteser. Unders\u00f6k \u00e4ven om du ska anv\u00e4nda match som funktionsnamn (eftersom det har varit reserverat sedan PHP 8.0) osv.<\/p>\n<figure id=\"attachment_147872\" aria-describedby=\"caption-attachment-147872\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147872 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/PHPCompatibility-1024x619-1.png\" alt=\"Sk\u00e4rmdump fr\u00e5n GitHub-sidan PHPCompatibility\" width=\"1024\" height=\"619\"><figcaption id=\"caption-attachment-147872\" class=\"wp-caption-text\">Sk\u00e4rmdump fr\u00e5n GitHub-sidan PHPCompatibility<\/figcaption><\/figure>\n<p>Psalm och PHPStan \u00e4r bra till\u00e4gg och kan hj\u00e4lpa dig genom att utf\u00f6ra ytterligare kontroller som \u00e4r relaterade till variabeltyper. Nackdelen med dessa verktyg \u00e4r att det kr\u00e4vs en hel del konfigurering f\u00f6r att f\u00e5 rapporter om PHP 8.0 och 8.1. \u00c4ven om de lyckas s\u00e5 kan du exempelvis f\u00f6rv\u00e4nta dig m\u00e5nga falska positiva resultat. Falska positiva \u00e4r anm\u00e4lningar som ges felaktigt och som orsakas av begr\u00e4nsningarna i den statiska analysen.<\/p>\n<p>Det kr\u00e4vs gedigna kunskaper f\u00f6r att tolka resultaten fr\u00e5n dessa tv\u00e5 verktyg korrekt. Den kunskapen kan d\u00e4remot hj\u00e4lpa dig att identifiera ytterligare inkompatibiliteter som PHPCompatibility inte kan hitta. Titta p\u00e5 dokumentationen f\u00f6r <a href=\"https:\/\/psalm.dev\/docs\/\" target=\"_blank\" rel=\"noopener noreferrer\">Psalm<\/a> och <a href=\"https:\/\/phpstan.org\/user-guide\/getting-started\" target=\"_blank\" rel=\"noopener noreferrer\">PHPStan<\/a> om du vill l\u00e4ra dig mer om dem.<\/p>\n<p>Sammanfattning:<\/p>\n<ul>\n<li>Utf\u00f6r statisk analys med PHPCompatibility, Psalm och PHPStan<\/li>\n<li>L\u00f6s alla legitima problem<\/li>\n<\/ul>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-\">\n        <p><strong>Experttips fr\u00e5n Juliette<\/strong><\/p>\n<p>N\u00e4r du testar, s\u00e4tt error_reporting till -1 i filen php.ini \/ wp-config.php. Detta beror p\u00e5 att E_ALL, beroende p\u00e5 PHP-versionen, inte inneh\u00e5ller allt.<\/p>\n<p>Det \u00e4r f\u00f6rst fr\u00e5n och med 8.0 som E_ALL inneh\u00e5ller allt. Sl\u00e5 dessutom p\u00e5 log_errors f\u00f6r att titta tillbaka p\u00e5 anm\u00e4lningar i en loggfil.<\/p>\n<p>Du ska inte sl\u00e5 p\u00e5 felloggning p\u00e5 en live-webbplats eftersom detta kan orsaka f\u00f6rdr\u00f6jningar. Det m\u00e5ste n\u00e4mligen m\u00e5ste skriva data till en fil. G\u00f6r d\u00e4rf\u00f6r detta i en iscens\u00e4ttningsmilj\u00f6 och se till att du vet vad som h\u00e4nder\/felar.<\/p>\n<p>F\u00f6r att se dina loggar i MyKinsta s\u00e5 g\u00e5r du till webbplatsen och klickar p\u00e5 <strong>Loggar <\/strong>i menyn. H\u00e4r kan du exempelvis se filerna error.log och access.log och studera alla loggposter.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/docs\/wordpress-hosting\/wordpress-troubleshooting\/view-server-logs\/\">Klicka h\u00e4r f\u00f6r att l\u00e4ra dig mer om hur du tittar p\u00e5 loggar i MyKinsta<\/a>.<\/p>\n<\/aside>\n\n<figure id=\"attachment_147929\" aria-describedby=\"caption-attachment-147929\" style=\"width: 2806px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147929 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/mykinsta-access-logs-eng0.png\" alt=\"MyKinsta - visning av loggfiler\" width=\"2806\" height=\"1746\"><figcaption id=\"caption-attachment-147929\" class=\"wp-caption-text\">MyKinsta &#8211; visning av loggfiler<\/figcaption><\/figure>\n<h3>Testning av enheter<\/h3>\n<p>N\u00e4sta steg i processen \u00e4r enhetstestning. Enhetstestning \u00e4r en metod f\u00f6r att testa delar av koden individuellt. Vid enhetstestning s\u00e5 utvecklas specifika riktade tester f\u00f6r varje enhet. Detta kommer exempelvis att inneb\u00e4ra att man k\u00f6r igenom olika scenarier. Helst s\u00e5 testas varje scenario separat fr\u00e5n de andra s\u00e5 att testerna \u00e4r oberoende av varandra.<\/p>\n<p>Det r\u00e4cker naturligtvis inte med att endast ha enhetstester. De m\u00e5ste dessutom k\u00f6ras. Enhetstester automatiseras b\u00e4st med hj\u00e4lp av CI-verktyg (continuous integration) som <a href=\"https:\/\/www.jenkins.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jenkins<\/a>, <a href=\"https:\/\/github.com\/features\/actions\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub Actions<\/a> eller <a href=\"https:\/\/www.travis-ci.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Travis<\/a>.<\/p>\n<figure id=\"attachment_147875\" aria-describedby=\"caption-attachment-147875\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147875 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/github-actions-1024x687-1.png\" alt=\"Ett exempel fr\u00e5n GitHub Actions\" width=\"1024\" height=\"687\"><figcaption id=\"caption-attachment-147875\" class=\"wp-caption-text\">Ett exempel fr\u00e5n GitHub Actions<\/figcaption><\/figure>\n<h4>St\u00f6d f\u00f6r flera versioner av PHP<\/h4>\n<p>Om du som plugin-byggare vill st\u00f6dja flera PHP-versioner s\u00e5 ska du se till att testerna i CI k\u00f6rs mot alla PHP-versioner som du st\u00f6der.<\/p>\n<p>Du kan naturligtvis v\u00e4lja att endast st\u00f6dja nyare versioner, valet \u00e4r helt upp till dig.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-\">\n        <p><strong>Experttips fr\u00e5n Juliette<\/strong><\/p>\n<p>P\u00e5 GitHub Actions s\u00e5 kan du redan nu testa mot PHP 8.2. Som ett resultat s\u00e5 f\u00e5r du varningar i r\u00e4tt tid om nya \u00e4ndringar i PHP som du m\u00e5ste ta h\u00e4nsyn till.<\/p>\n<\/aside>\n\n<p>Testning med flera versioner av PHP kr\u00e4ver att du anv\u00e4nder flera PHPUnit-versioner, beroende p\u00e5 PHP-versionen. Eftersom PHPUnit har inf\u00f6rt flera \u00e4ndringar under \u00e5ren som p\u00e5verkar hur tester skrivs s\u00e5 kan den h\u00e4r delen vara knepig.<\/p>\n<p>F\u00f6r att komma runt detta s\u00e5 kan du exempelvis anv\u00e4nda <a href=\"https:\/\/github.com\/Yoast\/PHPUnit-Polyfills\" target=\"_blank\" rel=\"noopener noreferrer\">PHPUnit Polyfills<\/a> (skrivet av Juliette och sponsrat av <a href=\"https:\/\/kinsta.com\/partners\/yoast\/\">Yoast<\/a>). Som ett resultat s\u00e5 kan du skriva tester som officiellt inte st\u00f6ds av PHPUnit 9 (och som d\u00e4rmed kan k\u00f6ras p\u00e5 PHP 8.x). Polyfills g\u00f6r sedan att dina tester fungerar i PHPUnit 4.x till 9.x och med PHP 5.4 till PHP 8.1 (fr\u00e5n och med nu).[\/notice]<\/p>\n<p>Nu n\u00e4r du har testerna ig\u00e5ng s\u00e5 \u00e4r n\u00e4sta steg att se till att de problem som uppt\u00e4cktes i testerna \u00e4r \u00e5tg\u00e4rdade.<\/p>\n<h4>Kodt\u00e4ckning<\/h4>\n<p>Att k\u00f6ra dessa tester \u00e4r det mest tillf\u00f6rlitliga s\u00e4ttet att hitta inkompatibilitet mellan olika versioner.<\/p>\n<p>N\u00e4r du g\u00f6r detta s\u00e5 ska du vara uppm\u00e4rksam p\u00e5 <em>kodt\u00e4ckningen <\/em>i dina tester:<\/p>\n<ul>\n<li>Anta att du har en funktion A och har skrivit ett test f\u00f6r den. Du kan \u00e4ven anta att funktion A anropar funktionerna B, C och D som en del av logiken i funktionen.<\/li>\n<li>Testet f\u00f6r funktion A \u00e4r skrivet f\u00f6r att testa logiken i funktion A. Det kommer dock \u00e4ven att anropa funktionerna B, C och D under testningen. F\u00f6r funktionerna B, C och D s\u00e5 testar man d\u00e5 vanligtvis bara &#8221;den lyckliga v\u00e4gen&#8221; &#8211; den situation d\u00e4r allt g\u00e5r bra. Som ett resultat s\u00e5 \u00e4r dessa funktioner inte heller helt testade \u00e4nnu, \u00e4ven om (en del av) koden i dessa funktioner utf\u00f6rs under testningen av funktion A.<\/li>\n<li>Ange f\u00f6r varje test vilken kod som testas specifikt. Du g\u00f6r exempelvis detta genom att ge varje test en <a href=\"https:\/\/phpunit.readthedocs.io\/en\/9.5\/code-coverage-analysis.html#specifying-covered-code-parts\" target=\"_blank\" rel=\"noopener noreferrer\">@covers<\/a> P\u00e5 s\u00e5 s\u00e4tt &#8221;r\u00e4knas&#8221; inte B, C och D med i ber\u00e4kningen av kodt\u00e4ckningen. Du kan d\u00e4rf\u00f6r se vilken del av din kod som t\u00e4cks av testerna.<\/li>\n<\/ul>\n<p>Ofta skriver och testar utvecklare &#8211; ibland till och med omedvetet &#8211; f\u00f6r den &#8221;lyckliga v\u00e4gen&#8221; I dessa fall \u00e4r det \u00e4ven n\u00f6dv\u00e4ndigt att testa vad som h\u00e4nder n\u00e4r ov\u00e4ntade data skickas till en funktion. Det <strong>r\u00e4cker inte att testa med endast f\u00f6rv\u00e4ntade v\u00e4rden\/typer<\/strong>.<\/p>\n\n<p>Den andra delen av citatet ovan gl\u00f6ms ofta bort, trots att den kanske \u00e4r \u00e4nnu viktigare \u00e4n den f\u00f6rsta delen. Vad h\u00e4nder om du l\u00e4mnar \u00f6ver en felaktig typ? F\u00e5r du ett felmeddelande? Eller kastas variabeln medan funktionen forts\u00e4tter som vanligt? Vad h\u00e4nder om ett ov\u00e4ntat v\u00e4rde l\u00e4mnas \u00f6ver till funktionen?<\/p>\n<p>Se till att testa dina funktioner med ov\u00e4ntade variabler, typer och v\u00e4rden. F\u00f6rst d\u00e5 s\u00e5 kan du lita p\u00e5 att dina tester hittar problem som en ny PHP-version kan orsaka.<\/p>\n<h4>PHP blir str\u00e4ngare<\/h4>\n<p>PHP blir mer exakt (strikt) i hur det hanterar &#8221;typer&#8221; f\u00f6r PHP\u2019s egna funktioner samt saker som dynamiska egenskaper. Dessa f\u00f6r\u00e4ndringar \u00e4r generellt avsedda att hj\u00e4lpa utvecklare att leverera felfri kod (eller \u00e5tminstone kod med f\u00e4rre fel). Men detta kan dessv\u00e4rre utg\u00f6ra ett rej\u00e4lt uppgraderingshinder f\u00f6r redan existerande kod som har skrivits enligt de &#8221;gamla&#8221; principerna f\u00f6r PHP.<\/p>\n<p>Det finns med andra ord en str\u00e4van efter mer hj\u00e4lpsamma felmeddelanden i PHP. Som ett resultat s\u00e5 kan du se att det tar allt mer tid att g\u00f6ra befintlig kod l\u00e4mplig f\u00f6r nya PHP-versioner. Att g\u00f6ra kod som fungerade med PHP 5.6 l\u00e4mplig f\u00f6r PHP 7.0 tog i de flesta fall bara en br\u00e5kdel av tiden j\u00e4mf\u00f6rt med att uppgradera kod f\u00f6r att g\u00f6ra den l\u00e4mplig f\u00f6r PHP 8.1. Och detta trots att PHP 7.0 var en &#8221;st\u00f6rre&#8221; version, medan PHP 8.1 \u00e4r en &#8221;mindre&#8221;<\/p>\n<p>I m\u00e5nga fall s\u00e5 \u00e4r testning fortfarande det enda tillf\u00f6rlitliga s\u00e4ttet att avg\u00f6ra vad som beh\u00f6ver \u00e4ndras f\u00f6r att st\u00f6dja en ny version.<\/p>\n<p>Enhetstestning \u00e4r m\u00f6jlig med olika verktyg, exempelvis:<\/p>\n<ul>\n<li><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHPUnit<\/a><\/li>\n<li><a href=\"http:\/\/docs.mockery.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mockery<\/a><\/li>\n<li><a href=\"https:\/\/docs.behat.org\/en\/latest\/\" target=\"_blank\" rel=\"noopener noreferrer\">Behat<\/a>,<\/li>\n<li><a href=\"http:\/\/datasift.github.io\/storyplayer\/v2\/using\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\">Storyplayer<\/a><\/li>\n<\/ul>\n<p>M\u00e5nga av dessa verktyg \u00e4r byggda p\u00e5 eller i samband med PHPUnit.<\/p>\n<p>I slut\u00e4ndan s\u00e5 spelar det ingen roll vilka verktyg som du anv\u00e4nder. Det viktigaste \u00e4r att du testar och att du f\u00e5r testerna att fungera p\u00e5 nya PHP-versioner. Det h\u00e4r steget kan ibland vara mycket knepigt. Det finns dock som tidigare n\u00e4mnts verktyg f\u00f6r detta, exempelvis\u00a0<a href=\"https:\/\/github.com\/Yoast\/PHPUnit-Polyfills\" target=\"_blank\" rel=\"noopener noreferrer\">PHPUnit Polyfills<\/a>.<\/p>\n<h3>Integreringstestning<\/h3>\n<p>Integreringstestning \u00e4r n\u00e4sta steg som vi kommer att utf\u00f6ra, efter statisk analys och enhetstestning. Vid ett integreringstest testas verkliga situationer i ett st\u00f6rre sammanhang \u00e4n bara en &#8221;kodenhet&#8221; Det handlar exempelvis om testning med en aktiv (test)databas eller testning med ett externt API, f\u00f6r att bara ge tv\u00e5 exempel.<\/p>\n<p>S\u00e5 n\u00e4r du testar koden f\u00f6r ett plugin eller ett tema i WordPress-sammanhang och anv\u00e4nder en riktig version \u00e4r detta per definition integreringstester.<\/p>\n<p>WP Test Utils (\u00e5terigen skrivet av Juliette och sponsrat av Yoast) \u00e4r ett utm\u00e4rkt verktyg f\u00f6r integreringstester. WP Test Utils tillhandah\u00e5ller exempelvis verktyg f\u00f6r att skriva integrerings- och enhetstester, d\u00e4r WordPress &#8221;mockas upp&#8221; med hj\u00e4lp av <a href=\"https:\/\/github.com\/Brain-WP\/BrainMonkey\" target=\"_blank\" rel=\"noopener noreferrer\">Brainmonkey<\/a> och <a href=\"http:\/\/docs.mockery.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mockery<\/a>. D\u00e4r \u201dfejkas\u201d vanligt f\u00f6rekommande WordPress-funktioner s\u00e5 att du testar din egen kod och inte WordPress-koden.<\/p>\n<figure id=\"attachment_147877\" aria-describedby=\"caption-attachment-147877\" style=\"width: 911px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147877 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/wp-test-utils.png\" alt=\"WP Test Utilities p\u00e5 GitHub\" width=\"911\" height=\"648\"><figcaption id=\"caption-attachment-147877\" class=\"wp-caption-text\">WP Test Utilities p\u00e5 GitHub<\/figcaption><\/figure>\n<p>Integreringstestning med WordPress \u00e4r en knepigare historia. Det handlar n\u00e4mligen om integrering med WordPress och WordPress testf\u00f6ljd. Beroende p\u00e5 vilka versioner av WordPress som ett plugin eller tema st\u00f6der s\u00e5 m\u00e5ste du \u00f6verv\u00e4ga vilka PHPUnit-versioner som st\u00f6ds av WordPress sj\u00e4lvt. Du kan d\u00e4refter k\u00f6ra testerna p\u00e5 olika PHP-versioner.<\/p>\n<p>WordPress 5.6 till 5.8 anv\u00e4nder exempelvis\u00a0<a href=\"https:\/\/make.wordpress.org\/core\/handbook\/references\/phpunit-compatibility-and-wordpress-versions\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHPUnit 5 till 7<\/a> f\u00f6r att testa <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/references\/php-compatibility-and-wordpress-versions\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 5.6 till PHP 8.0<\/a>. Fr\u00e5n och med WordPress 5.9 s\u00e5 anv\u00e4nder WordPress dessutom PHPUnit Polyfills f\u00f6r ett bredare st\u00f6d. WP Test Utils fungerar som en bro f\u00f6r att \u00f6vervinna alla dessa skillnader.<\/p>\n<p>Vill du veta mer om hur du k\u00f6r integreringstester mot flera olika versioner av WordPress, inklusive WordPress 5.9 och senare? <a href=\"https:\/\/make.wordpress.org\/core\/2021\/09\/27\/changes-to-the-wordpress-core-php-test-suite\/\" target=\"_blank\" rel=\"noopener noreferrer\">L\u00e4s d\u00e5 om detta p\u00e5 WordPress webbplats<\/a>.<\/p>\n<h3>Manuell testning<\/h3>\n<p>Nu har du g\u00e5tt igenom enhetstestning och integreringstestning och \u00e5tg\u00e4rdat alla problem som du hittade. Det \u00e4r med andra ord dags att g\u00f6ra manuella tester. Din webbplats \u00e4r ig\u00e5ng och din egen kod fungerar. Du anv\u00e4nder dock dessutom plugins A, B och C. Vet du om dessa plugins \u00e4r kompatibla?<\/p>\n<p>Kontrollera exempelvis detta med pluginets f\u00f6rfattare och se om de anger att det \u00e4r kompatibelt med PHP 8.x. Fr\u00e5gan \u00e4r d\u00e5 f\u00f6rst\u00e5s hur pluginet testades. Ofta \u00e4r svaret h\u00e4r: isolerat. Pluginets funktioner har vanligtvis testats tillsammans med enbart WordPress, utan andra aktiva plugins. Och \u00e4ven om det anv\u00e4ndes andra plugins i dessa tester s\u00e5 \u00e4r chansen stor att alla plugins som <em>du<\/em> anv\u00e4nder inte var en del av testerna. Ta d\u00e4rf\u00f6r ett s\u00e5dant kompatibilitetsuttalande med en nypa salt.<\/p>\n<p>Ta exempelvis en WordPress-webbplats med 3 plugins (A, B och C). Det \u00e4r m\u00f6jligt att plugin B exempelvis returnerar en felaktig variabel typ via ett filter, som plugin C, som anv\u00e4nder samma filter, vill arbeta med. Som ett resultat s\u00e5 kan det orsakas ett fatalt fel eftersom typen inte l\u00e4ngre \u00e4r den f\u00f6rv\u00e4ntade. Plugin C ses d\u00e5 som den skyldige till felmeddelandet, \u00e4ven om plugin B \u00e4r den verkliga boven.<\/p>\n<p>Det \u00e4r om\u00f6jligt att uppt\u00e4cka kompatibilitetsproblem mellan plugins n\u00e4r man testar isolerat. Ju fler aktiva plugins, desto st\u00f6rre \u00e4r sannolikheten att n\u00e5got g\u00e5r fel. Det skulle exempelvis vara mycket f\u00f6rdelaktigt att skicka sidf\u00f6rfr\u00e5gningar fr\u00e5n en live-webbplats till en iscens\u00e4ttningsmilj\u00f6 (med felloggning aktiverad) f\u00f6r att uppt\u00e4cka vad som faktiskt g\u00e5r fel.<\/p>\n<p>Vid den h\u00e4r typen av problem s\u00e5 kommer en webbplats\u00e4gare vanligtvis bara att se ett meddelande om att det var ett fel med den senast exekverade koden (i det h\u00e4r fallet fr\u00e5n insticksmodul C). Detta g\u00e4ller \u00e4ven om plugin C inte n\u00f6dv\u00e4ndigtvis \u00e4r orsaken till problemet.<\/p>\n<p>I de flesta fall s\u00e5 \u00e4r det mycket manuellt, m\u00e4nskligt arbete inblandat. Det kr\u00e4vs dessutom en rej\u00e4l dos armb\u00e5gsolja f\u00f6r att uppt\u00e4cka och \u00e5tg\u00e4rda dessa problem. Detta <em>skulle kunna <\/em>automatiseras med hj\u00e4lp av end to end-testning, men detta sker inte s\u00e5 ofta i WordPress.<\/p>\n<h4>Testa tillg\u00e4ngligheten f\u00f6r anv\u00e4nda plugins<\/h4>\n<p>F\u00f6r utvecklare och utvecklingsteam: Acceptera endast kod n\u00e4r testerna \u00e4r tillg\u00e4ngliga. P\u00e5 s\u00e5 s\u00e4tt ser du till att det kr\u00e4vs mindre manuell testning. Som ett resultat s\u00e5 sparar du mycket tid.<\/p>\n<p>Fr\u00e5ga efter dess teststrategi om du vill k\u00f6pa ett kommersiellt plugin eller tema. Som ett resultat s\u00e5 skapar vi tillsammans en medvetenhet bland utvecklare\/utvecklingsteam i WordPress-communityt. Testning kommer d\u00e4rf\u00f6r h\u00f6gre upp p\u00e5 dagordningen, och alla tj\u00e4nar p\u00e5 detta.<\/p>\n<p>Testning betraktas ofta &#8211; or\u00e4ttvist &#8211; som en kostnad n\u00e4r det i sj\u00e4lva verket sparar pengar. Den extra investering som kr\u00e4vs f\u00f6r att skriva tester l\u00f6nar sig i form av betydligt f\u00e4rre felrapporter. Det g\u00e5r dessutom \u00e5t betydligt mindre tid till att \u00e5tg\u00e4rda fel. Med en automatiserad programvarutestning s\u00e5 kan dessutom utvidgningar och \u00e4ndringar g\u00f6ras snabbare. Testerna kan ju ge en snabb bekr\u00e4ftelse p\u00e5 att den befintliga funktionaliteten forts\u00e4tter att fungera.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-\">\n        <p><strong>Experttips fr\u00e5n Juliette<\/strong><\/p>\n<p>N\u00e4r du vill b\u00f6rja skriva ny kod:<\/p>\n<ol>\n<li>B\u00f6rja med att skriva ut vad en funktion ska g\u00f6ra och med vilken logik. Skriv detta som en kommentar eller en serie kommentarer.<\/li>\n<li>Skriv testerna. F\u00f6rs\u00f6k att \u00e4ven ha edge cases i \u00e5tanke.<\/li>\n<li>Skriv f\u00f6rst d\u00e4refter koden.<\/li>\n<\/ol>\n<p>Av den ursprungliga logik som du har beskrivit i kommentarerna s\u00e5 kommer h\u00e4lften att ha f\u00f6rsvunnit eftersom den har ersatts av kod. L\u00e5t resten av kommentarerna vara kvar. De kan n\u00e4mligen hj\u00e4lpa dig att f\u00f6rst\u00e5 logiken igen senare om du inte har tittat p\u00e5 din kod p\u00e5 ett tag<\/p>\n<\/aside>\n\n\n<h2>Rollen f\u00f6r WordPress-hostar och PHP 8.x<\/h2>\n<p>F\u00f6r den genomsnittlige webbplats\u00e4garen s\u00e5 \u00e4r v\u00e4gledning fr\u00e5n hosten h\u00f6gst \u00f6nskv\u00e4rd. T\u00e4nk p\u00e5 f\u00f6ljande:<\/p>\n<ul>\n<li>Dokumentation och uppdateringar f\u00f6r kunder om att WordPress-k\u00e4rnan, plugins och\/eller teman (i vissa fall) inte \u00e4r kompatibla med PHP-versioner<\/li>\n<li>Alternativ f\u00f6r testning (t.ex. att <a href=\"https:\/\/kinsta.com\/se\/wordpress-hosting\/staging\/\">arbeta med en iscens\u00e4ttningsmilj\u00f6<\/a>)<\/li>\n<li>Metoder f\u00f6r felrapportering och kontakt med supporten<\/li>\n<\/ul>\n<p>Detta gynnar \u00e4ven en hosting-leverant\u00f6r, eftersom webbplats\u00e4gare ofta kontaktar hosten f\u00f6r att f\u00e5 hj\u00e4lp n\u00e4r problem uppst\u00e5r. Vid ett byte till PHP 8.0, 8.1 eller 8.2 s\u00e5 \u00e4r det webbplats\u00e4garen som ansvarar f\u00f6r eventuella problem. Ju mer information som \u00e4garen har f\u00f6r att f\u00f6rbereda sig f\u00f6r bytet, desto b\u00e4ttre.<\/p>\n<p>Att g\u00f6ra PHP 8.1 eller 8.2 tillg\u00e4ngligt f\u00f6r kunderna som hosting-leverant\u00f6r \u00e4r en sak. De m\u00e5ste dessutom se till att skapa medvetenhet bland kunderna s\u00e5 att de \u00e4r medvetna om att problem kan dyka upp. Det rekommenderas att man testar webbplatsen i en iscens\u00e4ttningsmilj\u00f6 med en annan version \u00e4n live. (Att v\u00e4lja PHP-versioner \u00e4r <a href=\"https:\/\/kinsta.com\/se\/changelog\/php-8\/\">tillg\u00e4ngligt som standard p\u00e5 Kinsta<\/a>.)<\/p>\n<h2>Minsta PHP-version f\u00f6r WordPress<\/h2>\n<p>\u00d6ver 15 % av alla webbplatser anv\u00e4nder f\u00f6r n\u00e4rvarande PHP-version 7.0 eller l\u00e4gre. Detta kan ses i den <a href=\"https:\/\/wordpress.org\/about\/stats\/\" target=\"_blank\" rel=\"noopener noreferrer\">officiella WordPress-statistiken<\/a>. Omkring 83 % av alla WordPress-webbplatser anv\u00e4nder f\u00f6r n\u00e4rvarande PHP-version 7.4 eller l\u00e4gre. Observera att allt som \u00e4r l\u00e4gre \u00e4n eller lika med version 8.0 f\u00f6r n\u00e4rvarande <a href=\"https:\/\/www.php.net\/supported-versions\" target=\"_blank\" rel=\"noopener noreferrer\">inte l\u00e4ngre st\u00f6ds av PHP<\/a>. Om du exempelvis anv\u00e4nder PHP-versioner som \u00e4r i slutet av sin livsl\u00e4ngd s\u00e5 kan detta leda till problem eftersom s\u00e4kerhetsuppdateringar inte l\u00e4ngre sl\u00e4pps.<\/p>\n<p>F\u00f6r att undvika problem s\u00e5 \u00e4r det d\u00e4rf\u00f6r viktigt att \u00e4gare av WordPress-webbplatser \u00e4r medvetna om och informerade om den minsta PHP-versionen. Som ett resultat s\u00e5 kan deras webbplats kan k\u00f6ras s\u00e4kert. Webbplats\u00e4garna kan sj\u00e4lva \u00e4ndra PHP-versionen (<a href=\"https:\/\/kinsta.com\/se\/blog\/uppdatera-php-versionen-wordpress\/\">m\u00f6jligt p\u00e5 Kinsta med alla paket<\/a>). De kan \u00e4ven be sin host att uppdatera webbplatsen till en nyare PHP-version. I extrema fall s\u00e5 kan man byta till en host som st\u00f6der dessa nyare versioner.<\/p>\n<p>Eftersom WordPress endast kr\u00e4ver en <a href=\"https:\/\/wordpress.org\/about\/requirements\/\" target=\"_blank\" rel=\"noopener noreferrer\">minimiversion p\u00e5 7.4<\/a>\u00a0s\u00e5 \u00e4r det inte tillr\u00e4ckligt motiverat f\u00f6r m\u00e5nga hostar och webbplats\u00e4gare att uppdatera sina webbplatser. Och detta trots att PHP 7.4 n\u00e5dde sitt slutdatum i <a href=\"https:\/\/www.php.net\/eol.php\" target=\"_blank\" rel=\"noopener noreferrer\">november \u00e5r 2022<\/a>.<\/p>\n<p>Om WordPress n\u00e5gonsin h\u00f6jer den l\u00e4gsta PHP-versionen kan detta inneb\u00e4ra att m\u00e5nga webbplatser inte l\u00e4ngre kommer att vara kompatibla med en uppdatering till den senaste WordPress-versionen. S\u00e4kerhetsuppdateringar kommer dock att forts\u00e4tta att sl\u00e4ppas f\u00f6r dessa f\u00f6r\u00e5ldrade versioner under en l\u00e5ng tid fram\u00f6ver.<\/p>\n<h2>Sammanfattning<\/h2>\n<p>F\u00f6r att byta till PHP 8.0 eller h\u00f6gre f\u00f6r din webbplats s\u00e5 finns det flera steg som du, eller din utvecklare, m\u00e5ste utf\u00f6ra. Viktiga steg \u00e4r bland annat f\u00f6ljande:<\/p>\n<ul>\n<li>Statisk analys<\/li>\n<li>Testning av enheter<\/li>\n<li>Testning av integrering<\/li>\n<li>Manuell testning<\/li>\n<\/ul>\n<p>N\u00e4r du byter till PHP 8.x s\u00e5 ska du se till att <em>allt<\/em> har testats ordentligt. Det \u00e4r det enda s\u00e4ttet att garantera att din webbplats kommer att fungera korrekt, snabbt och s\u00e4kert i en nyare PHP-version.<\/p>\n<p>Vi tackar Juliette oerh\u00f6rt mycket f\u00f6r att hon deltog i den h\u00e4r artikeln och f\u00f6r allt hennes arbete med de n\u00e4mnda verktygen!<\/p>\n<p><em>Foto p\u00e5 Juliette, taget av Jip Moors och anv\u00e4nt med tillst\u00e5nd.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Att uppgradera en WordPress-webbplats, ett plugin eller ett tema till en ny version av PHP \u00e4r en uppgift som \u00e5terkommer regelbundet. Men hur g\u00f6r du detta &#8230;<\/p>\n","protected":false},"author":139,"featured_media":50868,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[791,804],"class_list":["post-50867","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-lar-dig-php","topic-php-uppdateringar"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Byt till PHP 8.x i fyra steg - Intervju med Juliette Reinders Folmer - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"L\u00e4r dig vad som ing\u00e5r i ett smidigt byte till PHP 8.x f\u00f6r din WordPress-webbplats, dina plugins eller ditt tema, inklusive en v\u00e4gkarta.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Att byta till PHP 8.x i fyra steg - en intervju med Juliette Reinders Folmer\" \/>\n<meta property=\"og:description\" content=\"L\u00e4r dig vad som ing\u00e5r i ett smidigt byte till PHP 8.x f\u00f6r din WordPress-webbplats, dina plugins eller ditt tema, inklusive en v\u00e4gkarta.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstasweden\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-07T10:41:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-21T09:26:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Marcel Bootsman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"L\u00e4r dig vad som ing\u00e5r i ett smidigt byte till PHP 8.x f\u00f6r din WordPress-webbplats, dina plugins eller ditt tema, inklusive en v\u00e4gkarta.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_se\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_se\" \/>\n<meta name=\"twitter:label1\" content=\"Skriven av\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marcel Bootsman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minuter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/\"},\"author\":{\"name\":\"Marcel Bootsman\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7\"},\"headline\":\"Att byta till PHP 8.x i fyra steg &#8211; en intervju med Juliette Reinders Folmer\",\"datePublished\":\"2023-03-07T10:41:55+00:00\",\"dateModified\":\"2023-09-21T09:26:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/\"},\"wordCount\":4356,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/se\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/\",\"url\":\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/\",\"name\":\"Byt till PHP 8.x i fyra steg - Intervju med Juliette Reinders Folmer - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/se\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"datePublished\":\"2023-03-07T10:41:55+00:00\",\"dateModified\":\"2023-09-21T09:26:33+00:00\",\"description\":\"L\u00e4r dig vad som ing\u00e5r i ett smidigt byte till PHP 8.x f\u00f6r din WordPress-webbplats, dina plugins eller ditt tema, inklusive en v\u00e4gkarta.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"contentUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/se\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"L\u00e4r dig PHP\",\"item\":\"https:\/\/kinsta.com\/se\/topics\/lar-dig-php\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Att byta till PHP 8.x i fyra steg &#8211; en intervju med Juliette Reinders Folmer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/se\/#website\",\"url\":\"https:\/\/kinsta.com\/se\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snabba, s\u00e4kra, premium hosting-l\u00f6sningar\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/se\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/se\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/se\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/se\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstasweden\/\",\"https:\/\/x.com\/kinsta_se\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7\",\"name\":\"Marcel Bootsman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g\",\"caption\":\"Marcel Bootsman\"},\"description\":\"Partnerships &amp; Community Manager EMEA. Je kan me bereiken via Linkedin.\",\"sameAs\":[\"https:\/\/kinsta.com\/nl\/\",\"https:\/\/www.linkedin.com\/in\/marcelbootsman\/\"],\"url\":\"https:\/\/kinsta.com\/se\/blog\/author\/marcelbootsman\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Byt till PHP 8.x i fyra steg - Intervju med Juliette Reinders Folmer - Kinsta\u00ae","description":"L\u00e4r dig vad som ing\u00e5r i ett smidigt byte till PHP 8.x f\u00f6r din WordPress-webbplats, dina plugins eller ditt tema, inklusive en v\u00e4gkarta.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/","og_locale":"sv_SE","og_type":"article","og_title":"Att byta till PHP 8.x i fyra steg - en intervju med Juliette Reinders Folmer","og_description":"L\u00e4r dig vad som ing\u00e5r i ett smidigt byte till PHP 8.x f\u00f6r din WordPress-webbplats, dina plugins eller ditt tema, inklusive en v\u00e4gkarta.","og_url":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstasweden\/","article_published_time":"2023-03-07T10:41:55+00:00","article_modified_time":"2023-09-21T09:26:33+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png","type":"image\/png"}],"author":"Marcel Bootsman","twitter_card":"summary_large_image","twitter_description":"L\u00e4r dig vad som ing\u00e5r i ett smidigt byte till PHP 8.x f\u00f6r din WordPress-webbplats, dina plugins eller ditt tema, inklusive en v\u00e4gkarta.","twitter_image":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png","twitter_creator":"@kinsta_se","twitter_site":"@kinsta_se","twitter_misc":{"Skriven av":"Marcel Bootsman","Ber\u00e4knad l\u00e4stid":"18 minuter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/"},"author":{"name":"Marcel Bootsman","@id":"https:\/\/kinsta.com\/se\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7"},"headline":"Att byta till PHP 8.x i fyra steg &#8211; en intervju med Juliette Reinders Folmer","datePublished":"2023-03-07T10:41:55+00:00","dateModified":"2023-09-21T09:26:33+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/"},"wordCount":4356,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/se\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png","inLanguage":"sv-SE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/","url":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/","name":"Byt till PHP 8.x i fyra steg - Intervju med Juliette Reinders Folmer - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/se\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png","datePublished":"2023-03-07T10:41:55+00:00","dateModified":"2023-09-21T09:26:33+00:00","description":"L\u00e4r dig vad som ing\u00e5r i ett smidigt byte till PHP 8.x f\u00f6r din WordPress-webbplats, dina plugins eller ditt tema, inklusive en v\u00e4gkarta.","breadcrumb":{"@id":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#primaryimage","url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png","contentUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/03\/Juliette_Reinders_Folmer_image.png","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/se\/blog\/byt-till-php-8\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/se\/"},{"@type":"ListItem","position":2,"name":"L\u00e4r dig PHP","item":"https:\/\/kinsta.com\/se\/topics\/lar-dig-php\/"},{"@type":"ListItem","position":3,"name":"Att byta till PHP 8.x i fyra steg &#8211; en intervju med Juliette Reinders Folmer"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/se\/#website","url":"https:\/\/kinsta.com\/se\/","name":"Kinsta\u00ae","description":"Snabba, s\u00e4kra, premium hosting-l\u00f6sningar","publisher":{"@id":"https:\/\/kinsta.com\/se\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/se\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/se\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/se\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstasweden\/","https:\/\/x.com\/kinsta_se","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/se\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7","name":"Marcel Bootsman","image":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g","caption":"Marcel Bootsman"},"description":"Partnerships &amp; Community Manager EMEA. Je kan me bereiken via Linkedin.","sameAs":["https:\/\/kinsta.com\/nl\/","https:\/\/www.linkedin.com\/in\/marcelbootsman\/"],"url":"https:\/\/kinsta.com\/se\/blog\/author\/marcelbootsman\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/50867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/users\/139"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/comments?post=50867"}],"version-history":[{"count":15,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/50867\/revisions"}],"predecessor-version":[{"id":53851,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/50867\/revisions\/53851"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50867\/translations\/en"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50867\/translations\/nl"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50867\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50867\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50867\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50867\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50867\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50867\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50867\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50867\/translations\/dk"},{"href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50867\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/media\/50868"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/media?parent=50867"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/tags?post=50867"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/topic?post=50867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}