{"id":230238,"date":"2022-12-06T18:40:00","date_gmt":"2022-12-06T15:40:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230238"},"modified":"2022-12-07T12:18:33","modified_gmt":"2022-12-07T09:18:33","slug":"installera-xdebug-del-1-xdebug-modulen","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/installera-xdebug-del-1-xdebug-modulen\/","title":{"rendered":"Installera Xdebug, del 1: Xdebug-modulen"},"content":{"rendered":"\n<p>Vid det h\u00e4r laget har vi t\u00e4ckt mycket mark n\u00e4r det g\u00e4ller att arbeta med WordPress och fels\u00f6kning. Och detta g\u00e4ller s\u00e4rskilt n\u00e4r det g\u00e4ller att arbeta med verktyg och plugins som \u00e4r tillg\u00e4ngliga i WordPress. Om du bara g\u00e5r med i den h\u00e4r serien, se till att du har kommit ikapp med f\u00f6ljande inl\u00e4gg:<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/wordpress.mediadoma.com\/sv\/laesa-och-foerstaa-wordpress-felloggar-del-1\/\" title=\"L\u00e4sa och f\u00f6rst\u00e5 WordPress-felloggar, del 1\">L\u00e4sa och f\u00f6rst\u00e5 WordPress-felloggar, del 1<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/wordpress.mediadoma.com\/sv\/laesa-och-foerstaa-wordpress-felloggar-del-2\/\" title=\"L\u00e4sa och f\u00f6rst\u00e5 WordPress-felloggar, del 2\">L\u00e4sa och f\u00f6rst\u00e5 WordPress-felloggar, del 2<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/tommcfarlin.com\/debugging-within-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Grundl\u00e4ggande fels\u00f6kning inom WordPress<\/a><\/strong><\/li>\n<\/ul>\n<p>I f\u00f6rra inl\u00e4gget, kom ih\u00e5g att jag sa f\u00f6ljande:<\/p>\n<blockquote>\n<p>Men om du vill komma in i en v\u00e4rld av professionell, praktisk fels\u00f6kning fr\u00e5n din IDE, d\u00e5 \u00e4r det viktigt att f\u00f6rst\u00e5 vad, hur och varf\u00f6r.<\/p>\n<\/blockquote>\n<p>Och vi \u00e4r \u00e4ntligen redo att titta p\u00e5 vad detta kr\u00e4ver. F\u00f6r att komma ig\u00e5ng betyder det dock att vi m\u00e5ste f\u00f6rst\u00e5 n\u00e5gra saker om <strong><a href=\"https:\/\/xdebug.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Xdebug<\/a><\/strong>, terminologin, och att ha en IDE som \u00e4r konsekvent f\u00f6r alla som l\u00e4ser just den h\u00e4r serien.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743dbd5b19.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743dbd5b19.png\" alt=\"Installera Xdebug, del 1: Xdebug-modulen\"><\/a><\/p>\n<p>S\u00e5 det h\u00e4r kommer att delas upp i tv\u00e5 delar.<\/p>\n<ul>\n<li>F\u00f6rst ska vi titta p\u00e5 terminologin som kr\u00e4vs f\u00f6r fels\u00f6kning och se till att vi har en korrekt IDE-inst\u00e4llning i v\u00e5r utvecklingsmilj\u00f6,<\/li>\n<li>D\u00e4refter ska vi titta p\u00e5 hur vi kan s\u00e4kerst\u00e4lla att vi har installerat Xdebug korrekt och sedan koppla upp det till v\u00e5r utvecklingsmilj\u00f6 s\u00e5 att vi kan f\u00e5 det att fungera.<\/li>\n<\/ul>\n<p>Om du har l\u00e4st en m\u00e4ngd olika inneh\u00e5ll i den h\u00e4r bloggen under de senaste \u00e5ren kan en del av detta verka bekant. Om inte, ingen stor sak. Kom ih\u00e5g att m\u00e5let \u00e4r att se till att vi alla \u00e4r p\u00e5 samma niv\u00e5 n\u00e4r vi forts\u00e4tter med arbetet som n\u00e4mns ovan och under resten av serien.<\/p>\n<p>Med det sagt, l\u00e5t oss b\u00f6rja.<\/p>\n<h2>Installera Xdebug, del 1<\/h2>\n<p>Som n\u00e4mnts ovan kommer denna upps\u00e4ttning inl\u00e4gg att tj\u00e4na ett av tv\u00e5 syften som b\u00e5da kan beskrivas kortfattat (det andra kommer att beskrivas i n\u00e4sta inl\u00e4gg):<\/p>\n<ol>\n<li>Fels\u00f6kningsterminologi<\/li>\n<li>Installera en IDE<\/li>\n<\/ol>\n<p>\u00c4ven om m\u00e5nga som l\u00e4ser detta redan kommer att k\u00e4nna till en del av terminologin (s\u00e4rskilt om du har anv\u00e4nt verktyg p\u00e5 klientsidan eller till och med verktyg p\u00e5 serversidan tidigare), och du redan har en valfri redakt\u00f6r, \u00e4r det viktigt att se till att vi \u00e4r \u00e5tminstone arbeta med en konsekvent grund.<\/p>\n<p>Om du \u00e4r s\u00e4ker p\u00e5 dina f\u00e4rdigheter \u00f6ver de tv\u00e5 punkterna som n\u00e4mns ovan, kommer n\u00e4sta inl\u00e4gg troligen att vara mer intressant f\u00f6r dig. Om, \u00e5 andra sidan, det h\u00e4r b\u00f6rjar komma in p\u00e5 ett nytt territorium f\u00f6r dig b\u00f6r det l\u00e4gga grunden f\u00f6r allt du beh\u00f6ver f\u00f6r att se till att du lyckas fels\u00f6ka projekt i WordPress.<\/p>\n<p>Dessutom kommer det att se till att du har en konsekvent upps\u00e4ttning verktyg att arbeta med s\u00e5 att vi kan forts\u00e4tta att driva fram\u00e5t med en standardupps\u00e4ttning verktyg f\u00f6r att skapa en s\u00e5 produktiv utvecklingsmilj\u00f6 som m\u00f6jligt.<\/p>\n<h3>1 Fels\u00f6kningsterminologi<\/h3>\n<p>Beroende p\u00e5 din bakgrund kan du h\u00e4vda att det finns n\u00e5gonstans mellan fem och sju termer som var och en \u00e4r relaterade till fels\u00f6kning. Jag har beskrivit det tidigare i andra inl\u00e4gg p\u00e5 den h\u00e4r webbplatsen. Varje g\u00e5ng har jag dock gjort det med lite olika syn p\u00e5 inneh\u00e5llet.<\/p>\n<p>I det h\u00e4r inl\u00e4gget siktar jag p\u00e5 att f\u00f6rs\u00f6ka g\u00f6ra detta s\u00e5 exakt och exakt som m\u00f6jligt s\u00e5 att det ger en konsekvent referens som vi kommer att kunna anv\u00e4nda i inl\u00e4ggen (och i arbetet) som kommer. Som det ser ut nu, h\u00e4r \u00e4r termerna som jag tycker att alla borde k\u00e4nna till n\u00e4r det g\u00e4ller deras debugger.<\/p>\n<ol>\n<li><strong>Brytpunkter<\/strong>. Dessa kan betraktas som de grundl\u00e4ggande blocken f\u00f6r fels\u00f6kning. Enkelt uttryckt \u00e4r de platser i koden som du vill pausa k\u00f6rningen s\u00e5 att du kan unders\u00f6ka vad som h\u00e4nder i koden. Kanske har detta att g\u00f6ra med variabler; kanske har det med funktioner att g\u00f6ra, kanske har det med n\u00e5got annat att g\u00f6ra. Oavsett vilket \u00e4r detta viktigt eftersom du s\u00e4ger till programmet &quot;hej, jag vill stoppa programmet fr\u00e5n att k\u00f6ras h\u00e4r p\u00e5 den h\u00e4r raden s\u00e5 att jag kan unders\u00f6ka programmets tillst\u00e5nd.&quot;<\/li>\n<li><strong>Klockor<\/strong>. Dessa \u00e4r funktionsanrop, variabler eller andra st\u00e4llen i koden som kan st\u00e4llas in s\u00e5 att vi bokstavligen kan se v\u00e4rden f\u00f6r\u00e4ndras under k\u00f6rningen. Om vi \u200b\u200bpratar om funktioner, kan vi h\u00e4nvisa till v\u00e4rdena f\u00f6r argument som de st\u00e4lls in och manipuleras i en funktion. Om vi \u200b\u200bpratar om variabler s\u00e5 pratar vi om variabler; d\u00e5 pratar vi om de v\u00e4rden de har vid varje given tidpunkt under programmets k\u00f6rning. Det kan vara n\u00e4r vi st\u00e4ller in en specifik brytpunkt, eller s\u00e5 kan det vara n\u00e4r vi g\u00e5r igenom koden och h\u00e5ller ett \u00f6ga p\u00e5 statusen f\u00f6r variabeln under programmets k\u00f6rning.<\/li>\n<li><strong>Starta<\/strong>. Denna \u00e5tg\u00e4rd s\u00e4ger helt enkelt till fels\u00f6karen att b\u00f6rja \u00f6vervaka webbservern. I grund och botten \u00e4r det att h\u00e5lla ett \u00f6ga p\u00e5 allt som h\u00e4nder inom programmet och, om n\u00e5gra brytpunkter st\u00e4lls in, \u00e4r det beredd att stoppa exekvering och till\u00e5ta oss att ta en titt p\u00e5 vad som h\u00e4nder med programmets tillst\u00e5nd. Du kan tekniskt sett starta en fels\u00f6kningssession och inte g\u00f6ra n\u00e5gonting alls. Det \u00e4r inte direkt produktivt, men det \u00e4r m\u00f6jligt.<\/li>\n<li><strong>G\u00e5 in i<\/strong>. Antag f\u00f6r ett \u00f6gonblick att du har en brytpunkt inst\u00e4lld precis ovanf\u00f6r ett funktionsanrop eller p\u00e5 en funktionsanrop. Detta till\u00e5ter oss att g\u00e5 in i funktionen f\u00f6r att \u00f6vervaka v\u00e4rdet av varje argument, hur de manipuleras i funktionen, vad funktionen returnerar (om n\u00e5got) och allt som h\u00e4nder i funktionen.<\/li>\n<li><strong>Steg \u00f6ver<\/strong>. \u00c5 andra sidan, anta att du g\u00e5r igenom funktionen och att du inte \u00e4r s\u00e4ker p\u00e5 att du vill dyka in i funktionen. Du kanske bara \u00e4r intresserad av de v\u00e4rden som funktionen returnerar eller programmets tillst\u00e5nd efter att funktionen har k\u00f6rts, men du \u00e4r inte intresserad av vad som har h\u00e4nt i funktionen. I huvudsak behandlar du det som en svart l\u00e5da. Det \u00e4r vad det inneb\u00e4r att g\u00e5 \u00f6ver en funktion. Det vill s\u00e4ga att du l\u00e5ter funktionen k\u00f6ra utan att kliva in i den f\u00f6r att se den fungera.<\/li>\n<li><strong>Kliv ut<\/strong>. Den h\u00e4r speciella aspekten av fels\u00f6kning \u00e4r anv\u00e4ndbar n\u00e4r du befinner dig i en funktion och du \u00e4r redo att \u00e5terg\u00e5 till huvudlinjen f\u00f6r exekvering eftersom du har sett allt du beh\u00f6ver se. Du kanske har sett att v\u00e4rdena f\u00f6r en variabel f\u00f6r\u00e4ndras, kanske har du sett en algoritm g\u00f6ra tillr\u00e4ckligt mycket arbete f\u00f6r att veta att den har gjort som du vill. Oavsett vilket kommer detta att till\u00e5ta dig att g\u00e5 ut ur funktionen, det passande namnet, och sedan flytta in i<\/li>\n<li><strong>Sluta<\/strong>. Precis som start s\u00e4ger \u00e5t fels\u00f6karen att <strong>b\u00f6rja<\/strong> lyssna p\u00e5 servern, vara uppm\u00e4rksam p\u00e5 brytpunkter och visa information om programmets framsteg, g\u00f6r stop precis tv\u00e4rtom. Den talar om f\u00f6r fels\u00f6karen att vi \u00e4r klara med att lyssna, titta p\u00e5 och uppm\u00e4rksamma programmets tillst\u00e5nd. Det betyder inte att programmet stannar \u2013 bara fels\u00f6karen. S\u00e5 om du \u00e4r klar med att vara uppm\u00e4rksam p\u00e5 all information som tillhandah\u00e5lls av fels\u00f6karen, \u00e4r du troligen i st\u00e5nd att stoppa fels\u00f6karen.<\/li>\n<\/ol>\n<p>En sista anm\u00e4rkning jag skulle vilja g\u00f6ra \u00e4r att PHP \u00e4r unikt genom att det erbjuder en m\u00e4ngd olika offentligt tillg\u00e4ngliga variabler som <strong><a href=\"https:\/\/secure.php.net\/manual\/en\/reserved.variables.get.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$_GET<\/a> ,<\/strong> <a href=\"https:\/\/secure.php.net\/manual\/en\/reserved.variables.post.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$_POST<\/a>, <a href=\"https:\/\/secure.php.net\/manual\/en\/reserved.variables.request.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$_REQUEST<\/a>, och s\u00e5 vidare. Detta \u00e4r ocks\u00e5 variabler som \u00e4r tillg\u00e4ngliga f\u00f6r oss som vi kan titta p\u00e5. Det \u00e4r inte bara begr\u00e4nsat till vad vi har skrivit i v\u00e5r kod.<\/p>\n<p>Detta \u00e4r s\u00e4rskilt anv\u00e4ndbart eftersom vi tittar p\u00e5 data \u00f6ver sid\u00e5terladdningar, Ajax-f\u00f6rfr\u00e5gningar (som under GET- och POST-\u00e5tg\u00e4rder) och s\u00e5 vidare.<\/p>\n<h3>2 Installera Xdebug<\/h3>\n<p>\u00c4ven om det troligen \u00e4r uppenbart fr\u00e5n tidigare inl\u00e4gg i den h\u00e4r serien, kommer jag att anv\u00e4nda <strong><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Visual Studio Code<\/a><\/strong> som mitt val av IDE. Om du inte har en s\u00e5 \u00e4r den h\u00e4r en jag rekommenderar. Om du d\u00e4remot har en IDE som du \u00e4r bekv\u00e4m med att anv\u00e4nda s\u00e5 \u00e4r detta en som jag rekommenderar.<\/p>\n<ul>\n<li>Koden \u00e4r alltid under utveckling,<\/li>\n<li>har en aktiv f\u00f6rl\u00e4ngningsekonomi,<\/li>\n<li>fungerar bra med en m\u00e4ngd olika spr\u00e5k, verktyg och s\u00e5 vidare,<\/li>\n<li>\u00e4r l\u00e4tt och spelar bra med de olika sakerna vi kan anv\u00e4ndas i WordPress-utveckling (som PHP, HTML och JavaScript).<\/li>\n<\/ul>\n<p>Dessutom har <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Code<\/a><\/strong> ocks\u00e5 ett bra st\u00f6d f\u00f6r Xdebug. F\u00f6r att s\u00e4kerst\u00e4lla att fels\u00f6karen \u00e4r korrekt installerad m\u00e5ste vi dock se till att vi har till\u00e4gget installerat med v\u00e5r installation av PHP, att det \u00e4r tillg\u00e4ngligt i hela v\u00e5rt system och att det kan k\u00f6ras i v\u00e5r IDE. Vi kommer att titta p\u00e5 att g\u00f6ra detta, men f\u00f6rst m\u00e5ste vi se till att Xdebug \u00e4r korrekt installerat.<\/p>\n<h4>Installerar Xdebug<\/h4>\n<p>Det \u00e4r enkelt att installera Xdebug. Inifr\u00e5n din terminalsession m\u00e5ste du utf\u00f6ra <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-16-install-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">f\u00f6ljande kommando:<\/a><\/strong><\/p>\n<p>N\u00e4r du g\u00f6r det kommer du att m\u00e4rka flera saker som h\u00e4nder i terminalf\u00f6nstret n\u00e4r installationen \u00e4ger rum. Om du inte \u00e4r s\u00e4rskilt intresserad beh\u00f6ver du inte oroa dig f\u00f6r vad den g\u00f6r f\u00f6rr\u00e4n den \u00e5terg\u00e5r till kommandotolken.<\/p>\n<p>Vid det h\u00e4r laget har Xdebug-modulen installerats; men du kommer att beh\u00f6va ber\u00e4tta f\u00f6r PHP att den \u00e4r installerad och var den kan hitta modulen.<\/p>\n<p>F\u00f6r att installera till\u00e4gget med din nuvarande version av PHP \u00e4r det viktigt att veta vilken version av PHP du har installerat. Om du anv\u00e4nder en pakethanterare, s\u00e5 finns det kanske flera versioner och du kommer att beh\u00f6va ber\u00e4tta f\u00f6r den specifika versionens konfigurationsfil var du kan hitta modulen.<\/p>\n<p>Omv\u00e4nt, om du har en enda version installerad, m\u00e5ste du ber\u00e4tta f\u00f6r en enda version av PHP var den \u00e4r installerad. F\u00f6rst kan du hitta var Xdebug finns i filsystemet med <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-17-find-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">detta kommando:<\/a><\/strong><\/p>\n<p>D\u00e5 kommer du att beh\u00f6va uppdatera konfigurationsfilen f\u00f6r din PHP-installation. F\u00f6r att g\u00f6ra detta, k\u00f6r helt enkelt <strong>php -v<\/strong> fr\u00e5n kommandoraden och den kommer att ber\u00e4tta vilken version du k\u00f6r. H\u00e4rifr\u00e5n kommer du att beh\u00f6va hitta initieringsfilen f\u00f6r den version av PHP som du anv\u00e4nder. Om du, n\u00e4r du k\u00f6r <strong>php -v,<\/strong> kommer tillbaka med n\u00e5got i stil med detta:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743e0189a7.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743e0189a7.png\" alt=\"Installera Xdebug, del 1: Xdebug-modulen\"><\/a><\/p>\n<p>Detta talar om f\u00f6r oss att vi k\u00f6r PHP 7.1.19 (\u00e4ven om din version kan variera). H\u00e4rifr\u00e5n vet vi att vi ska leta efter en viss PHP-konfigurationsfil f\u00f6r den h\u00e4r versionen av PHP. F\u00f6r att g\u00f6ra detta, leta efter <strong>php.ini<\/strong> i katalogen \/usr\/local\/etc\/php\/7.1\/ p\u00e5 ditt system (\u00e4ven om det exakta versionsnumret kan variera).<\/p>\n<p>\u00d6ppna filen d\u00e4rifr\u00e5n och l\u00e4gg sedan till <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-18-reference-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">f\u00f6ljande kodrad:<\/a><\/strong><\/p>\n<pre><code>zend_extension=\"\/usr\/local\/lib\/php\/pecl\/20160303\/xdebug.so\"<\/code><\/pre>\n<p>Detta kommer att ber\u00e4tta f\u00f6r PHP var Xdebug finns s\u00e5 att den kan anv\u00e4ndas i ditt arbete.<\/p>\n<h4>Testa installationen<\/h4>\n<p>F\u00f6r att verifiera att installationen har g\u00e5tt korrekt kan du k\u00f6ra f\u00f6ljande kod <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-19-verify-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">i din terminal:<\/a><\/strong><\/p>\n<p>Och d\u00e5 b\u00f6r du se n\u00e5got i stil med f\u00f6ljande utdata p\u00e5 sk\u00e4rmen:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743e0189a7.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743e0189a7.png\" alt=\"Installera Xdebug, del 1: Xdebug-modulen\"><\/a><\/p>\n<p>Observera att i sk\u00e4rmdumpen ovan ser du f\u00f6ljande:<\/p>\n<blockquote>\n<p>med Xdebug v2.6.0, Copyright (c) 2002-2018, av Derick Rethans<\/p>\n<\/blockquote>\n<p>Det betyder att modulen har installerats och att PHP \u00e4r medveten om det.<\/p>\n<h2>Konfigurera din IDE<\/h2>\n<p>I n\u00e4sta inl\u00e4gg kommer vi att titta p\u00e5 att knyta Xdebug till v\u00e5r IDE. F\u00f6rutsatt att du har f\u00f6ljt stegen i det h\u00e4r inl\u00e4gget och att allt har g\u00e5tt bra, b\u00f6r du vara bra att g\u00e5 n\u00e4r det g\u00e4ller f\u00f6rberedelser f\u00f6r att fels\u00f6ka WordPress-projekt.<\/p>\n<p>Tills vi har det ig\u00e5ng inom en IDE \u00e4r det dock inte lika anv\u00e4ndbart (eller sv\u00e5rare \u00e4n det m\u00e5ste vara). S\u00e5 n\u00e4sta vecka ska vi titta p\u00e5 exakt hur man g\u00f6r det.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I det h\u00e4r inl\u00e4gget t\u00e4cker vi installationen av Xdebug s\u00e5 att den \u00e4r tillg\u00e4nglig i v\u00e5r PHP-installation. S\u00e5 sm\u00e5ningom \u00e4r det detta som g\u00f6r att vi kan fels\u00f6ka v\u00e5r kod inifr\u00e5n en IDE.<\/p>\n","protected":false},"author":1,"featured_media":236541,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[901,807,724],"tags":[1173],"class_list":["post-230238","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-koda","category-php-9","category-utvecklaren","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=230238"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230238\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/236541"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=230238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=230238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=230238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}