{"id":230814,"date":"2022-12-06T18:24:00","date_gmt":"2022-12-06T15:24:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230814"},"modified":"2022-12-07T12:18:31","modified_gmt":"2022-12-07T09:18:31","slug":"instalando-o-xdebug-parte-1-o-modulo-xdebug","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/instalando-o-xdebug-parte-1-o-modulo-xdebug\/","title":{"rendered":"Instalando o Xdebug, Parte 1: O M\u00f3dulo Xdebug"},"content":{"rendered":"\n<p>At\u00e9 agora, cobrimos muito terreno no que se refere ao trabalho com o WordPress e \u00e0 depura\u00e7\u00e3o. E isso \u00e9 especialmente verdadeiro no que se refere ao trabalho com ferramentas e plugins dispon\u00edveis no WordPress. Se voc\u00ea acabou de ingressar nesta s\u00e9rie em particular, certifique-se de acompanhar as seguintes postagens:<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/lendo-e-entendendo-os-logs-de-erros-do-wordpress-parte-1\/\" title=\"Lendo e entendendo os logs de erros do WordPress, parte 1\">Lendo e entendendo os logs de erros do WordPress, parte 1<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/lendo-e-entendendo-os-logs-de-erros-do-wordpress-parte-2\/\" title=\"Lendo e entendendo os logs de erros do WordPress, parte 2\">Lendo e entendendo os logs de erros do WordPress, parte 2<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/tommcfarlin.com\/debugging-within-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Depura\u00e7\u00e3o b\u00e1sica no WordPress<\/a><\/strong><\/li>\n<\/ul>\n<p>No post anterior, lembre-se que eu disse o seguinte:<\/p>\n<blockquote>\n<p>Mas se voc\u00ea deseja entrar no mundo da depura\u00e7\u00e3o profissional e pr\u00e1tica de dentro do seu IDE, \u00e9 importante entender o qu\u00ea, como e por qu\u00ea.<\/p>\n<\/blockquote>\n<p>E estamos finalmente prontos para ver o que isso exige. Para come\u00e7ar, no entanto, significa que precisamos entender algumas coisas sobre <strong><a href=\"https:\/\/xdebug.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Xdebug<\/a><\/strong>, a terminologia, e ter um IDE que seja consistente para todos que est\u00e3o lendo esta s\u00e9rie em particular.<\/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=\"Instalando o Xdebug, Parte 1: O M\u00f3dulo Xdebug\"><\/a><\/p>\n<p>Ent\u00e3o, isso vai ser dividido em duas partes.<\/p>\n<ul>\n<li>Primeiro, examinaremos a terminologia necess\u00e1ria para depura\u00e7\u00e3o e nos certificaremos de que temos uma configura\u00e7\u00e3o de IDE adequada em nosso ambiente de desenvolvimento.<\/li>\n<li>Em seguida, veremos como garantir que instalamos corretamente o Xdebug e, em seguida, lig\u00e1-lo ao nosso ambiente de desenvolvimento para que possamos coloc\u00e1-lo em funcionamento.<\/li>\n<\/ul>\n<p>Se voc\u00ea leu diversos conte\u00fados neste blog nos \u00faltimos anos, alguns deles podem parecer familiares. Se n\u00e3o, n\u00e3o \u00e9 grande coisa. Lembre-se de que o objetivo \u00e9 garantir que estamos todos no mesmo n\u00edvel \u00e0 medida que avan\u00e7amos com o trabalho mencionado acima e ao longo do resto da s\u00e9rie.<\/p>\n<p>Dito isso, vamos come\u00e7ar.<\/p>\n<h2>Instalando o Xdebug, Parte 1<\/h2>\n<p>Como mencionado acima, este conjunto de postagens servir\u00e1 a um dos dois prop\u00f3sitos que podem ser descritos sucintamente (o segundo ser\u00e1 descrito no pr\u00f3ximo post):<\/p>\n<ol>\n<li>Terminologia de depura\u00e7\u00e3o<\/li>\n<li>Instalando um IDE<\/li>\n<\/ol>\n<p>Embora muitos lendo isso j\u00e1 estejam familiarizados com algumas terminologias (especialmente se voc\u00ea j\u00e1 usou ferramentas do lado do cliente ou mesmo ferramentas do lado do servidor antes), e voc\u00ea j\u00e1 tem um editor de escolha, \u00e9 importante ter certeza de que estamos pelo menos trabalhando com uma base consistente.<\/p>\n<p>Se voc\u00ea est\u00e1 confiante em suas habilidades nos dois pontos mencionados acima, o pr\u00f3ximo post provavelmente ser\u00e1 mais interessante para voc\u00ea. Se, por outro lado, isso est\u00e1 entrando em um novo territ\u00f3rio para voc\u00ea, deve estabelecer as bases para tudo o que voc\u00ea precisa para ter certeza de que est\u00e1 depurando projetos com sucesso no WordPress.<\/p>\n<p>Al\u00e9m disso, garantir\u00e1 que voc\u00ea tenha um conjunto consistente de ferramentas com as quais trabalhar para que possamos continuar avan\u00e7ando com um conjunto padr\u00e3o de ferramentas para criar o ambiente de desenvolvimento mais produtivo poss\u00edvel.<\/p>\n<h3>1 Terminologia de depura\u00e7\u00e3o<\/h3>\n<p>Dependendo do seu hist\u00f3rico, voc\u00ea pode argumentar que existem entre cinco e sete termos, cada um relacionado \u00e0 depura\u00e7\u00e3o. Eu esbocei ent\u00e3o antes em outros posts neste site. Cada vez, no entanto, eu fiz isso com uma vis\u00e3o um pouco diferente do conte\u00fado.<\/p>\n<p>Neste post, estou tentando fazer isso o mais preciso e preciso poss\u00edvel para que forne\u00e7a uma refer\u00eancia consistente que poderemos usar nos posts (e no trabalho) que vir\u00e3o. Do jeito que est\u00e1 agora, aqui est\u00e3o os termos que acho que todos deveriam saber no que se refere ao seu depurador.<\/p>\n<ol>\n<li><strong>Pontos de interrup\u00e7\u00e3o<\/strong>. Estes podem ser considerados os blocos fundamentais de depura\u00e7\u00e3o. Simplificando, eles s\u00e3o lugares no c\u00f3digo que voc\u00ea deseja pausar a execu\u00e7\u00e3o para poder examinar o que est\u00e1 acontecendo no c\u00f3digo. Talvez isso tenha a ver com vari\u00e1veis; talvez tenha a ver com fun\u00e7\u00f5es, talvez tenha a ver com outra coisa. Independentemente disso, isso \u00e9 importante porque voc\u00ea est\u00e1 dizendo ao programa &#8220;hey, eu quero parar a execu\u00e7\u00e3o do programa aqui nesta linha para que eu possa investigar o estado do programa&quot;.<\/li>\n<li><strong>Rel\u00f3gios<\/strong>. Essas s\u00e3o chamadas de fun\u00e7\u00e3o, vari\u00e1veis \u200b\u200bou outros lugares no c\u00f3digo que podem ser configurados de forma que possamos literalmente ver os valores mudarem durante a execu\u00e7\u00e3o. Se estamos falando de fun\u00e7\u00f5es, podemos estar nos referindo aos valores dos argumentos conforme eles s\u00e3o definidos e manipulados dentro de uma fun\u00e7\u00e3o. Se estamos falando de vari\u00e1veis, estamos falando de vari\u00e1veis; ent\u00e3o estamos falando sobre os valores que eles mant\u00eam em qualquer ponto durante a execu\u00e7\u00e3o do programa. Isso pode ser quando definimos um ponto de interrup\u00e7\u00e3o espec\u00edfico ou sempre que percorremos o c\u00f3digo e ficamos de olho no status da vari\u00e1vel durante a execu\u00e7\u00e3o do programa.<\/li>\n<li><strong>Iniciar<\/strong>. Esta a\u00e7\u00e3o simplesmente diz ao depurador para come\u00e7ar a monitorar o servidor web. Essencialmente, ele est\u00e1 de olho em tudo o que est\u00e1 acontecendo dentro do programa e, se algum ponto de interrup\u00e7\u00e3o for definido, ele est\u00e1 preparado para interromper a execu\u00e7\u00e3o e nos permitir dar uma olhada no que est\u00e1 acontecendo com o estado do programa. Voc\u00ea pode tecnicamente iniciar uma sess\u00e3o de depura\u00e7\u00e3o e n\u00e3o fazer nada. N\u00e3o \u00e9 exatamente produtivo, mas \u00e9 poss\u00edvel.<\/li>\n<li><strong>Entre em<\/strong>. Suponha por um momento que voc\u00ea tenha um ponto de interrup\u00e7\u00e3o definido logo acima de uma chamada de fun\u00e7\u00e3o ou em uma invoca\u00e7\u00e3o de fun\u00e7\u00e3o. Isso nos permite entrar na fun\u00e7\u00e3o para monitorar o valor de cada argumento, como eles s\u00e3o manipulados dentro da fun\u00e7\u00e3o, o que a fun\u00e7\u00e3o retorna (se houver) e tudo o que acontece dentro da fun\u00e7\u00e3o.<\/li>\n<li><strong>Passo por cima<\/strong>. Por outro lado, suponha que voc\u00ea est\u00e1 percorrendo a fun\u00e7\u00e3o e n\u00e3o tem certeza de que deseja mergulhar na fun\u00e7\u00e3o. Talvez voc\u00ea esteja interessado apenas nos valores que a fun\u00e7\u00e3o retorna ou no estado do programa ap\u00f3s a execu\u00e7\u00e3o da fun\u00e7\u00e3o, mas n\u00e3o est\u00e1 interessado no que aconteceu dentro da fun\u00e7\u00e3o. Em ess\u00eancia, voc\u00ea o trata como uma caixa preta. Isso \u00e9 o que significa passar por cima de uma fun\u00e7\u00e3o. Ou seja, voc\u00ea deixa a fun\u00e7\u00e3o ser executada sem entrar nela para v\u00ea-la funcionar.<\/li>\n<li><strong>Sair<\/strong>. Esse aspecto espec\u00edfico da depura\u00e7\u00e3o \u00e9 \u00fatil sempre que voc\u00ea se encontra em uma fun\u00e7\u00e3o e est\u00e1 pronto para retornar \u00e0 linha principal de execu\u00e7\u00e3o porque j\u00e1 viu tudo o que precisava ver. Talvez voc\u00ea tenha testemunhado os valores de uma vari\u00e1vel mudando, talvez tenha visto um algoritmo trabalhar o suficiente para saber que fez o que voc\u00ea deseja. Seja qual for o caso, isso permitir\u00e1 que voc\u00ea saia da fun\u00e7\u00e3o, apropriadamente nomeada, e depois v\u00e1 para o<\/li>\n<li><strong>Pare<\/strong>. Assim como start diz ao depurador para <strong>come\u00e7ar<\/strong> a ouvir o servidor, prestando aten\u00e7\u00e3o aos pontos de interrup\u00e7\u00e3o e exibindo informa\u00e7\u00f5es sobre o andamento do aplicativo, stop faz exatamente o oposto. Ele informa ao depurador que terminamos de ouvir, assistir e prestar aten\u00e7\u00e3o ao estado do programa. Isso n\u00e3o significa que o programa pare \u2013 apenas o depurador. Portanto, se voc\u00ea acabou de prestar aten\u00e7\u00e3o a todas as informa\u00e7\u00f5es fornecidas pelo depurador, provavelmente estar\u00e1 em posi\u00e7\u00e3o de interromper o depurador.<\/li>\n<\/ol>\n<p>Uma observa\u00e7\u00e3o final que gostaria de fazer \u00e9 que o PHP \u00e9 \u00fanico, pois oferece uma variedade de vari\u00e1veis \u200b\u200bacess\u00edveis publicamente, como <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> e assim por diante. Essas tamb\u00e9m s\u00e3o vari\u00e1veis \u200b\u200bque est\u00e3o dispon\u00edveis para n\u00f3s e que podemos observar. N\u00e3o se limita apenas ao que temos escrito em nosso c\u00f3digo.<\/p>\n<p>Isso \u00e9 especialmente \u00fatil porque estamos analisando dados em recarregamentos de p\u00e1gina, solicita\u00e7\u00f5es Ajax (como durante a\u00e7\u00f5es GET e POST) e assim por diante.<\/p>\n<h3>2 Instalando o Xdebug<\/h3>\n<p>Embora seja evidente nas postagens anteriores desta s\u00e9rie, usarei o <strong><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Visual Studio Code<\/a><\/strong> como meu IDE de escolha. Se voc\u00ea n\u00e3o tem um, ent\u00e3o este \u00e9 um que eu recomendo. Se, no entanto, voc\u00ea tiver um IDE com o qual se sente confort\u00e1vel em usar, este \u00e9 um que eu recomendo.<\/p>\n<ul>\n<li>O c\u00f3digo est\u00e1 sempre em desenvolvimento,<\/li>\n<li>tem uma economia ativa de extens\u00f5es,<\/li>\n<li>funciona bem com uma variedade de linguagens, ferramentas e assim por diante,<\/li>\n<li>\u00e9 leve e funciona bem com as v\u00e1rias coisas que podemos usar no desenvolvimento do WordPress (como PHP, HTML e JavaScript).<\/li>\n<\/ul>\n<p>Al\u00e9m disso, o <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Code<\/a><\/strong> tamb\u00e9m tem suporte s\u00f3lido para o Xdebug. Para garantir que o depurador esteja instalado corretamente, por\u00e9m, precisamos garantir que tenhamos a extens\u00e3o instalada com nossa instala\u00e7\u00e3o do PHP, que ela esteja dispon\u00edvel em nosso sistema e que possa ser executada em nosso IDE. Vamos fazer isso, mas primeiro precisamos ter certeza de que o Xdebug est\u00e1 instalado corretamente.<\/p>\n<h4>Instalando o Xdebug<\/h4>\n<p>Instalar o Xdebug \u00e9 f\u00e1cil. De dentro da sua sess\u00e3o de terminal, voc\u00ea precisar\u00e1 executar <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-16-install-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">o seguinte comando:<\/a><\/strong><\/p>\n<p>Depois de fazer isso, voc\u00ea notar\u00e1 v\u00e1rias coisas acontecendo na janela do terminal enquanto a instala\u00e7\u00e3o ocorre. A menos que voc\u00ea esteja particularmente interessado, n\u00e3o precisa se preocupar com o que est\u00e1 fazendo at\u00e9 que retorne ao prompt de comando.<\/p>\n<p>Neste ponto, o m\u00f3dulo Xdebug foi instalado; no entanto, voc\u00ea precisar\u00e1 informar ao PHP que ele est\u00e1 instalado e onde ele pode encontrar o m\u00f3dulo.<\/p>\n<p>Para instalar a extens\u00e3o com sua vers\u00e3o atual do PHP, \u00e9 importante saber qual vers\u00e3o do PHP voc\u00ea instalou. Se voc\u00ea estiver usando um gerenciador de pacotes, talvez haja v\u00e1rias vers\u00f5es e voc\u00ea precisar\u00e1 informar ao arquivo de configura\u00e7\u00e3o dessa vers\u00e3o espec\u00edfica onde encontrar o m\u00f3dulo.<\/p>\n<p>Por outro lado, se voc\u00ea tiver uma \u00fanica vers\u00e3o instalada, precisar\u00e1 informar a uma \u00fanica vers\u00e3o do PHP onde ela est\u00e1 instalada. Primeiro, voc\u00ea pode encontrar onde o Xdebug existe no sistema de arquivos usando <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-17-find-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este comando:<\/a><\/strong><\/p>\n<p>Ent\u00e3o voc\u00ea precisar\u00e1 atualizar o arquivo de configura\u00e7\u00e3o para sua instala\u00e7\u00e3o do PHP. Para fazer isso, basta executar <strong>php -v<\/strong> na linha de comando e ele informar\u00e1 qual vers\u00e3o voc\u00ea est\u00e1 executando. A partir daqui, voc\u00ea precisar\u00e1 localizar o arquivo de inicializa\u00e7\u00e3o para a vers\u00e3o do PHP que est\u00e1 usando. Se, ao executar <strong>php -v,<\/strong> voc\u00ea voltar com algo assim:<\/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=\"Instalando o Xdebug, Parte 1: O M\u00f3dulo Xdebug\"><\/a><\/p>\n<p>Isso nos diz que estamos executando o PHP 7.1.19 (embora sua vers\u00e3o possa variar). A partir daqui, sabemos procurar um determinado arquivo de configura\u00e7\u00e3o do PHP para esta vers\u00e3o do PHP. Para fazer isso, procure por <strong>php.ini<\/strong> no diret\u00f3rio \/usr\/local\/etc\/php\/7.1\/ em seu sistema (embora o n\u00famero exato da vers\u00e3o possa variar).<\/p>\n<p>A partir da\u00ed, abra o arquivo e adicione <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-18-reference-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">a seguinte linha de c\u00f3digo:<\/a><\/strong><\/p>\n<pre><code>zend_extension=\"\/usr\/local\/lib\/php\/pecl\/20160303\/xdebug.so\"<\/code><\/pre>\n<p>Isso dir\u00e1 ao PHP onde o Xdebug reside para que possa ser usado em seu trabalho.<\/p>\n<h4>Testando a instala\u00e7\u00e3o<\/h4>\n<p>Para verificar se a instala\u00e7\u00e3o ocorreu corretamente, voc\u00ea pode executar o seguinte c\u00f3digo <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-19-verify-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">em seu terminal:<\/a><\/strong><\/p>\n<p>E ent\u00e3o voc\u00ea deve ver algo como a seguinte sa\u00edda na tela:<\/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=\"Instalando o Xdebug, Parte 1: O M\u00f3dulo Xdebug\"><\/a><\/p>\n<p>Observe que na captura de tela acima, voc\u00ea v\u00ea o seguinte:<\/p>\n<blockquote>\n<p>com Xdebug v2.6.0, Copyright (c) 2002-2018, por Derick Rethans<\/p>\n<\/blockquote>\n<p>Isso significa que o m\u00f3dulo foi instalado e que o PHP est\u00e1 ciente disso.<\/p>\n<h2>Configurando seu IDE<\/h2>\n<p>Na pr\u00f3xima postagem, veremos como vincular o Xdebug ao nosso IDE. Supondo que voc\u00ea tenha seguido as etapas deste post e que tudo tenha corrido bem, voc\u00ea deve estar pronto no que se refere \u00e0 prepara\u00e7\u00e3o para depurar projetos do WordPress.<\/p>\n<p>At\u00e9 que o tenhamos rodando dentro de um IDE, por\u00e9m, n\u00e3o \u00e9 t\u00e3o \u00fatil (ou \u00e9 mais dif\u00edcil do que tem que ser). Ent\u00e3o, na pr\u00f3xima semana, veremos exatamente como fazer isso.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste post, abordamos a instala\u00e7\u00e3o do Xdebug para que esteja dispon\u00edvel em nossa instala\u00e7\u00e3o do PHP. Eventualmente, \u00e9 isso que nos permitir\u00e1 depurar nosso c\u00f3digo de dentro de um 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":[898,722,806],"tags":[1170],"class_list":["post-230814","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-php-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230814","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=230814"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230814\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/236541"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=230814"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=230814"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=230814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}