{"id":66683,"date":"2024-03-01T11:05:42","date_gmt":"2024-03-01T14:05:42","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=66683&#038;preview=true&#038;preview_id=66683"},"modified":"2024-03-08T10:32:28","modified_gmt":"2024-03-08T13:32:28","slug":"criar-pacote-composer","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/","title":{"rendered":"Como Criar seu Pr\u00f3prio Pacote Composer"},"content":{"rendered":"<p>Com a reutiliza\u00e7\u00e3o de c\u00f3digo, surge o problema do gerenciamento de depend\u00eancias, historicamente um processo bastante manual e propenso a erros. Felizmente, nos \u00faltimos anos, a maioria das linguagens de programa\u00e7\u00e3o resolveu esse problema com a introdu\u00e7\u00e3o de v\u00e1rias ferramentas para o gerenciamento de depend\u00eancias. No ecossistema <a href=\"https:\/\/kinsta.com\/php\/\">PHP<\/a>, o <a href=\"https:\/\/kinsta.com\/pt\/blog\/instalar-composer\/\">Composer<\/a> tornou-se o padr\u00e3o gra\u00e7as \u00e0 sua facilidade de uso, flexibilidade e ado\u00e7\u00e3o ampla.<\/p>\n<p>Embora o Composer tenha sido criado para o gerenciamento de depend\u00eancias, voc\u00ea tamb\u00e9m pode us\u00e1-lo para tarefas como:<\/p>\n<ul>\n<li><strong>Carregamento autom\u00e1tico:<\/strong> Carregar automaticamente classes e fun\u00e7\u00f5es de bibliotecas externas para torn\u00e1-las prontamente acess\u00edveis a partir do seu c\u00f3digo e simplificar o processo de integra\u00e7\u00e3o de c\u00f3digo externo ao seu projeto.<\/li>\n<li><strong>Gera\u00e7\u00e3o de c\u00f3digo:<\/strong> Gerar c\u00f3digo padr\u00e3o para o seu projeto, como arquivos de configura\u00e7\u00e3o ou outros snippets de c\u00f3digo usados com frequ\u00eancia, para acelerar o processo de desenvolvimento e garantir a consist\u00eancia.<\/li>\n<li><strong>Cria\u00e7\u00e3o de scripts:<\/strong> Um sistema de script incorporado pode automatizar tarefas comuns, como a execu\u00e7\u00e3o de testes ou a gera\u00e7\u00e3o de documenta\u00e7\u00e3o a partir da sua base de c\u00f3digo. Isso pode ajudar a otimizar seu fluxo de trabalho de desenvolvimento e reduzir o trabalho manual.<\/li>\n<\/ul>\n<p>Este tutorial passo a passo orienta voc\u00ea a criar seu pr\u00f3prio pacote do Composer e public\u00e1-lo no <a href=\"https:\/\/packagist.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Packagist<\/a>, um reposit\u00f3rio de pacotes PHP que os desenvolvedores de todo o mundo podem usar em seus pr\u00f3prios projetos.<\/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>Como o Composer funciona?<\/h2>\n<p>Primeiro, vamos nos certificar de entender o Composer. Em termos simples, o Composer funciona usando um arquivo <strong>composer.json<\/strong> que cont\u00e9m as defini\u00e7\u00f5es das depend\u00eancias em seu projeto PHP. Ele procura esses pacotes em um reposit\u00f3rio centralizado e, em seguida, baixa e instala automaticamente essas depend\u00eancias usando o reposit\u00f3rio de pacotes.<\/p>\n<p>Supondo que voc\u00ea j\u00e1 tenha o <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer instalado<\/a> em seu ambiente de trabalho PHP, veja como \u00e9 o processo de download e instala\u00e7\u00e3o de depend\u00eancias:<\/p>\n<ol>\n<li>Defina as depend\u00eancias necess\u00e1rias para o seu projeto em um arquivo <strong>composer.json<\/strong> no diret\u00f3rio raiz do seu projeto. Esse arquivo inclui informa\u00e7\u00f5es sobre as bibliotecas necess\u00e1rias e suas vers\u00f5es, e quaisquer outras defini\u00e7\u00f5es de configura\u00e7\u00e3o ou depend\u00eancias para essas bibliotecas.<\/li>\n<li>Voc\u00ea pode resolver as depend\u00eancias no Composer com comandos como <code>install<\/code> para instalar as depend\u00eancias necess\u00e1rias; <code>update<\/code> para atualizar as depend\u00eancias existentes; e <code>require<\/code> para adicionar novas depend\u00eancias ao arquivo <strong>composer.json<\/strong>. Quando voc\u00ea executa um comando, o Composer l\u00ea o arquivo <strong>composer.json<\/strong> para determinar as depend\u00eancias necess\u00e1rias, verifica o reposit\u00f3rio de pacotes em busca da vers\u00e3o mais recente de cada depend\u00eancia apropriada para o seu ambiente PHP e, em seguida, verifica se h\u00e1 conflitos ou restri\u00e7\u00f5es de vers\u00e3o.<\/li>\n<li>O Composer baixa e instala as depend\u00eancias necess\u00e1rias, incluindo as bibliotecas, no diret\u00f3rio <strong>vendor<\/strong>\u00a0do seu projeto. O Composer cria um arquivo <strong>composer.lock<\/strong> que registra as vers\u00f5es exatas das depend\u00eancias instaladas.<\/li>\n<li>O Composer configura um carregador autom\u00e1tico que carrega classes e fun\u00e7\u00f5es das depend\u00eancias instaladas automaticamente. Isso facilita o uso das bibliotecas instaladas em seu projeto sem a necessidade de incluir manualmente cada arquivo.<\/li>\n<\/ol>\n<p>Em resumo, o Composer simplifica o gerenciamento de depend\u00eancias em <a href=\"https:\/\/kinsta.com\/pt\/participacao-de-mercado-do-php\/\">projetos PHP<\/a>, facilitando a instala\u00e7\u00e3o, a atualiza\u00e7\u00e3o e o uso de bibliotecas e frameworks externos.<\/p>\n<h2>Criando e publicando um pacote do Composer<\/h2>\n<p>Este tutorial mostra como criar uma biblioteca PHP simples chamada <strong>tempconv<\/strong>, que converte a temperatura em Celsius para Fahrenheit e vice-versa, e termina publicando-a como um pacote do Composer.<\/p>\n<h3>Pr\u00e9-requisitos<\/h3>\n<p>Voc\u00ea precisar\u00e1 de algumas coisas antes de come\u00e7ar:<\/p>\n<ul>\n<li>No momento em que este artigo foi escrito, a vers\u00e3o mais recente do Composer \u00e9 a v2.6.6, mas essas instru\u00e7\u00f5es devem funcionar com qualquer variante da v2.<\/li>\n<li><a href=\"https:\/\/github.com\/signup\" target=\"_blank\" rel=\"noopener noreferrer\">Uma conta do GitHub<\/a> para criar um reposit\u00f3rio para hospedar seu c\u00f3digo.<\/li>\n<li><a href=\"https:\/\/packagist.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Uma conta do Packagist<\/a> para publicar sua biblioteca.<\/li>\n<\/ul>\n<h3>Crie um reposit\u00f3rio de projeto<\/h3>\n<p>Crie seu pr\u00f3prio reposit\u00f3rio do GitHub para este tutorial, aonde voc\u00ea poder\u00e1 enviar o c\u00f3digo e os arquivos finalizados da biblioteca.<\/p>\n<figure style=\"width: 1536px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-github-repository.png\" alt=\"Criando o reposit\u00f3rio do projeto no GitHub.\" width=\"1536\" height=\"1408\"><figcaption class=\"wp-caption-text\">Criando o reposit\u00f3rio do projeto no GitHub.<\/figcaption><\/figure>\n<p>Este tutorial usa o nome de projeto <strong>tempconv<\/strong>. No campo <strong>Description<\/strong> (Descri\u00e7\u00e3o), forne\u00e7a breves detalhes sobre o aplicativo. Marque a caixa para adicionar um arquivo README, escolha o template Composer na op\u00e7\u00e3o <strong>Add .gitignore<\/strong> e selecione uma licen\u00e7a de sua escolha \u2014 este tutorial usa a <strong>licen\u00e7a MIT<\/strong>. Por fim, clique em <strong>Create repository <\/strong>(Criar reposit\u00f3rio).<\/p>\n<h3>Clone o reposit\u00f3rio<\/h3>\n<p>Clone o reposit\u00f3rio que voc\u00ea acabou de criar em seu computador local. N\u00e3o se esque\u00e7a de substituir a URL pela sua pr\u00f3pria, tanto aqui quanto em todo este tutorial:<\/p>\n<pre><code class=\"language-bash\">$ git clone https:\/\/github.com\/rexfordnyrk\/tempconv.git<\/code><\/pre>\n<p>Isso cria um diret\u00f3rio chamado <strong>tempconv<\/strong> em seu diret\u00f3rio de trabalho atual. Neste momento, ele cont\u00e9m apenas os arquivos <strong>README.md<\/strong>, <strong>LICENSE<\/strong> e <strong>.gitignore<\/strong>, mas voc\u00ea tamb\u00e9m criar\u00e1 os arquivos do pacote aqui.<\/p>\n<h3>Criando sua biblioteca PHP<\/h3>\n<p>No diret\u00f3rio do seu projeto, adicione um arquivo chamado <strong>TemperatureConverter.php<\/strong> com o seguinte c\u00f3digo:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace Rexfordnyrk\\Tempconv;\n\nclass TemperatureConverter\n{\n    \/\/Caller must provide the temperature value and the unit either C Celsius or F Fahrenheit\n    public function convert($temperature, $unit)\n    {\n        \/\/Checking whether the unit we're working with is Celsius or Fahrenheit\n        if ($unit === 'C') {\n            $fahrenheit = ($temperature * 9 \/ 5) + 32;\n            return $fahrenheit;\n        } elseif ($unit === 'F') {\n            $celsius = ($temperature - 32) * 5 \/ 9;\n            return $celsius;\n        } else {\n            \/\/Throwing error if the unit provided is neither C nor F\n            throw new \\InvalidArgumentException('Invalid unit, only C (Celsius) or F (Fahrenheit) are allowed');\n        }\n    }\n}<\/code><\/pre>\n<p>Essa classe tem um \u00fanico m\u00e9todo chamado <code>convert<\/code> que recebe a temperatura e a unidade como argumentos e retorna a temperatura convertida. E lan\u00e7a uma exce\u00e7\u00e3o se a unidade for inv\u00e1lida.<\/p>\n<p>Por enquanto, isso \u00e9 o suficiente. Em um cen\u00e1rio do mundo real, voc\u00ea provavelmente escreveria testes de unidade para garantir que seu c\u00f3digo funcione conforme o esperado ap\u00f3s modifica\u00e7\u00f5es ou atualiza\u00e7\u00f5es.<\/p>\n<h2>Criando o pacote Composer<\/h2>\n<p>Com o c\u00f3digo da biblioteca pronto, \u00e9 hora de transform\u00e1-lo em um pacote Composer. Voc\u00ea gerar\u00e1 um arquivo <strong>composer.json<\/strong> para o seu pacote usando um assistente passo a passo. Abordaremos algumas pr\u00e1ticas recomendadas para organizar seu c\u00f3digo como um pacote antes de envi\u00e1-lo para o seu reposit\u00f3rio.<\/p>\n<h3>Gerando um arquivo de pacote composer.json<\/h3>\n<p>Embora voc\u00ea possa escrever manualmente o conte\u00fado de um arquivo <strong>composer.json<\/strong> na raiz do diret\u00f3rio do seu projeto, \u00e9 melhor ger\u00e1-lo usando o seguinte comando do Composer:<\/p>\n<pre><code class=\"language-bash\">$ composer init<\/code><\/pre>\n<p>Esse comando conduz voc\u00ea por um pequeno assistente passo a passo. As respostas que voc\u00ea fornecer \u00e0s solicita\u00e7\u00f5es, como o nome do pacote, a descri\u00e7\u00e3o, as informa\u00e7\u00f5es do autor e o tipo de licen\u00e7a, gerar\u00e3o seu arquivo de pacote <strong>composer.json<\/strong>.<\/p>\n<p>A <a href=\"https:\/\/getcomposer.org\/doc\/04-schema.md\" target=\"_blank\" rel=\"noopener noreferrer\">documenta\u00e7\u00e3o do Composer<\/a> descreve os valores esperados, bem como outras op\u00e7\u00f5es que voc\u00ea pode usar para definir o <strong>composer.json<\/strong> do seu projeto.<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-init-wizard.png\" alt=\"Usando o composer init para gerar uma configura\u00e7\u00e3o.\" width=\"960\" height=\"1047\"><figcaption class=\"wp-caption-text\">Usando o <strong>composer init<\/strong> para gerar uma configura\u00e7\u00e3o.<\/figcaption><\/figure>\n<p>Observe que o assistente fornece respostas predefinidas para as perguntas quando aplic\u00e1vel, por exemplo, derivando seu nome e e-mail do git. Sinta-se \u00e0 vontade para alter\u00e1-las se quiser.<\/p>\n<p>Essa biblioteca n\u00e3o depende de nenhum outro pacote para funcionar, e portanto voc\u00ea pode responder <strong>No<\/strong> \u00e0s perguntas que especificam depend\u00eancias.<\/p>\n<p>O assistente mostra uma visualiza\u00e7\u00e3o do conte\u00fado do arquivo gerado e pede que voc\u00ea confirme para concluir o assistente.<\/p>\n<h3>Organizando os arquivos do pacote<\/h3>\n<p>Ao concluir o assistente, voc\u00ea cria dois diret\u00f3rios, al\u00e9m do arquivo <strong>composer.json<\/strong>:<\/p>\n<ul>\n<li><strong>src<\/strong> para o seu c\u00f3digo-fonte<\/li>\n<li><strong>vendor<\/strong> para as depend\u00eancias que voc\u00ea baixou<\/li>\n<\/ul>\n<p>Mova o arquivo <strong>TemperatureConverter.php<\/strong> para o diret\u00f3rio <strong>src<\/strong>. Se sua biblioteca tiver depend\u00eancias, execute <code>composer install<\/code> para gerar o carregador autom\u00e1tico e instalar as depend\u00eancias do pacote.<\/p>\n<h3>Carregando o c\u00f3digo no GitHub<\/h3>\n<p>Adicione suas altera\u00e7\u00f5es e novos arquivos ao git:<\/p>\n<pre><code class=\"language-bash\">$ git add -A<\/code><\/pre>\n<p>Fa\u00e7a o commit das altera\u00e7\u00f5es feitas no reposit\u00f3rio local e envie-as para o reposit\u00f3rio remoto no GitHub para que voc\u00ea possa publicar facilmente o projeto na pr\u00f3xima se\u00e7\u00e3o:<\/p>\n<pre><code class=\"language-bash\">$ git commit -am \"Initial Release\" && git push<\/code><\/pre>\n<h3>Crie uma vers\u00e3o de lan\u00e7amento para sua biblioteca<\/h3>\n<p>Com o c\u00f3digo no seu reposit\u00f3rio, voc\u00ea pode criar uma vers\u00e3o da sua biblioteca com um n\u00famero de vers\u00e3o para que outros desenvolvedores possam acompanhar suas atualiza\u00e7\u00f5es est\u00e1veis e significativas.<\/p>\n<p>Navegue at\u00e9 o seu reposit\u00f3rio no GitHub e clique em <strong>Releases<\/strong> abaixo da se\u00e7\u00e3o <strong>About<\/strong> (Sobre). Na p\u00e1gina Releases, onde se espera que voc\u00ea n\u00e3o tenha nada no momento, clique em <strong>Create a new release <\/strong>(Criar nova vers\u00e3o).<\/p>\n<figure style=\"width: 1839px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-github-releases.png\" alt=\"P\u00e1gina Releases do GitHub.\" width=\"1839\" height=\"684\"><figcaption class=\"wp-caption-text\">P\u00e1gina <strong>Releases <\/strong>do GitHub.<\/figcaption><\/figure>\n<p>Preencha alguns detalhes sobre sua vers\u00e3o, como a vers\u00e3o da tag e o t\u00edtulo da vers\u00e3o. A vers\u00e3o da tag deve ser um identificador exclusivo para essa vers\u00e3o (exemplo: <em>v1.0.0<\/em>), e o t\u00edtulo da vers\u00e3o deve descrever as altera\u00e7\u00f5es inclu\u00eddas na vers\u00e3o (por exemplo, <em>Vers\u00e3o inicial<\/em>).<\/p>\n<p>Opcionalmente, voc\u00ea pode adicionar uma descri\u00e7\u00e3o da vers\u00e3o. Se voc\u00ea quiser carregar um arquivo, como um bin\u00e1rio compilado ou um arquivo de c\u00f3digo-fonte, arraste e solte o arquivo na \u00e1rea <strong>Attach binaries by dropping them here or selecting them <\/strong>(Anexe bin\u00e1rios soltando os arquivos aqui ou selecionando-os), mas isso n\u00e3o \u00e9 necess\u00e1rio para este tutorial.<\/p>\n<figure style=\"width: 1897px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-github-releases-details.png\" alt=\"Inserindo os detalhes da vers\u00e3o inicial no GitHub.\" width=\"1897\" height=\"1302\"><figcaption class=\"wp-caption-text\">Inserindo os detalhes da vers\u00e3o inicial no GitHub.<\/figcaption><\/figure>\n<p>Clique em <strong>Publish release <\/strong>(Publicar vers\u00e3o) para criar a vers\u00e3o.<\/p>\n<p>Seu projeto agora deve estar dispon\u00edvel na p\u00e1gina <strong>Releases<\/strong> do seu reposit\u00f3rio. Os usu\u00e1rios podem baixar todos os arquivos que voc\u00ea anexou e visualizar as notas da vers\u00e3o. Al\u00e9m disso, se voc\u00ea adicionou uma tag para a vers\u00e3o, outros desenvolvedores poder\u00e3o usar essa tag para verificar o c\u00f3digo exato que foi inclu\u00eddo na vers\u00e3o.<\/p>\n<p>Sua biblioteca est\u00e1 pronta para ser compartilhada com o mundo. Vamos public\u00e1-la como um pacote no Packagist.<\/p>\n<h2>Como come\u00e7ar a usar o Packagist<\/h2>\n<p>O Packagist \u00e9 o principal reposit\u00f3rio de pacotes do PHP. Ele fornece um local central para que os desenvolvedores publiquem e compartilhem seus pacotes PHP e para que outros desenvolvedores descubram e usem esses pacotes em seus pr\u00f3prios projetos. Vamos publicar seu pacote!<\/p>\n<p>Navegue at\u00e9 o <a href=\"https:\/\/packagist.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">site do Packagist<\/a>, clique em <strong>Login<\/strong> e selecione <strong>GitHub<\/strong> como o m\u00e9todo de login, para usar sua conta do GitHub para autentica\u00e7\u00e3o.<\/p>\n<figure style=\"width: 900px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-signup.png\" alt=\"Registrando-se no Packagist com o GitHub.\" width=\"900\" height=\"964\"><figcaption class=\"wp-caption-text\">Registrando-se no Packagist com o GitHub.<\/figcaption><\/figure>\n<p>Clique em <strong>Authorize <\/strong>(Autorizar) para conceder permiss\u00e3o ao Packagist para acessar sua conta.<\/p>\n<figure style=\"width: 1178px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-login.png\" alt=\"Login bem-sucedido no Packagist com o GitHub.\" width=\"1178\" height=\"326\"><figcaption class=\"wp-caption-text\">Login bem-sucedido no Packagist com o GitHub.<\/figcaption><\/figure>\n<h3>Enviando seu pacote Composer para o Packagist<\/h3>\n<p>Para publicar um pacote no Packagist, envie o reposit\u00f3rio do GitHub que cont\u00e9m o arquivo <strong>composer.json<\/strong> que descreve o pacote e suas depend\u00eancias. Clique em <strong>Submit <\/strong>(Enviar) no site do Packagist, forne\u00e7a a URL do seu reposit\u00f3rio na p\u00e1gina que aparece e clique em <strong>Check <\/strong>(Verificar) para valid\u00e1-la.<\/p>\n<p>Se o reposit\u00f3rio for v\u00e1lido, o Packagist detectar\u00e1 o nome do pacote, e o bot\u00e3o <strong>Check<\/strong> se tornar\u00e1 <strong>Submit<\/strong>.<\/p>\n<figure id=\"attachment_174185\" aria-describedby=\"caption-attachment-174185\" style=\"width: 1156px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-174185 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-validated.png\" alt=\"Pacote do Composer rexfordnyrk\/tempconv validado e pronto para ser enviado.\" width=\"1156\" height=\"502\"><figcaption id=\"caption-attachment-174185\" class=\"wp-caption-text\">Pacote do Composer <strong>rexfordnyrk\/tempconv<\/strong> validado e pronto para ser enviado.<\/figcaption><\/figure>\n<p>Clique em <strong>Submit<\/strong>, e o Packagist aguardar\u00e1 um momento para configurar e publicar seu projeto.<\/p>\n<figure style=\"width: 1312px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/create-composer-package-packagist-published.png\" alt=\"Pacote Composer publicado com sucesso.\" width=\"1312\" height=\"1023\"><figcaption class=\"wp-caption-text\">Pacote Composer publicado com sucesso.<\/figcaption><\/figure>\n<p>\u00c9 isso a\u00ed! Seu pacote agora est\u00e1 dispon\u00edvel no Packagist para que outros desenvolvedores o utilizem como depend\u00eancia em seus pr\u00f3prios projetos.<\/p>\n<h2>Usando seu pacote Composer em outros projetos<\/h2>\n<p>Voc\u00ea pode usar seu pacote publicado em outros projetos adicionando-o como uma depend\u00eancia no arquivo <strong>composer.json<\/strong>. Voc\u00ea pode criar e editar o arquivo manualmente, mas \u00e9 melhor usar o comando do Composer da seguinte forma:<\/p>\n<pre><code class=\"language-bash\">$ composer require rexfordnyrk\/tempconv<\/code><\/pre>\n<p>O Composer cria automaticamente o arquivo <strong>composer.json<\/strong> se ele ainda n\u00e3o existir. Em seguida ele localiza, baixa e carrega automaticamente o pacote do Packagist. A sa\u00edda deve ser semelhante a esta:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/01\/requiring-package-in-composer.png\" alt=\"Schermafbeelding van de terminal na het toevoegen van een bibliotheek aan een project met Composer.\" width=\"960\" height=\"323\"><\/p>\n<p>Crie um arquivo <strong>demo.php<\/strong> que contenha o c\u00f3digo do aplicativo de demonstra\u00e7\u00e3o para trabalhar com a biblioteca.<br \/>\nVoc\u00ea pode usar a classe <code>TemperatureConverter<\/code> no c\u00f3digo do aplicativo desta forma:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nuse Rexfordnyrk\\Tempconv\\TemperatureConverter;\n\nrequire_once '.\/vendor\/autoload.php';\n\n$converter =  new TemperatureConverter();\n\n$fahrenheit = $converter-&gt;convert(20, 'C');\necho \"20\u00b0C is equivalent to $fahrenheit \u00b0F\\n\";\n\n$celsius = $converter-&gt;convert(68, 'F');\necho \"68\u00b0F is equivalent to $celsius \u00b0C\\n\";<\/code><\/pre>\n<p>Esse c\u00f3digo usa a classe <code>TemperatureConverter<\/code> para converter as temperaturas de 20 Celsius e 68 Fahrenheit e gerar os resultados. O arquivo <strong>autoloader.php<\/strong> importado foi criado pelo Composer para carregar todas as depend\u00eancias de que voc\u00ea precisa. Isso se encarrega de carregar a classe automaticamente quando necess\u00e1rio.<\/p>\n<p>Por fim, execute este c\u00f3digo no seu terminal:<\/p>\n<pre><code class=\"language-bash\">$ php demo.php<\/code><\/pre>\n<p>Voc\u00ea obter\u00e1 um resultado semelhante a este:<\/p>\n<pre><code class=\"language-bash\">$ php demo.php\n20\u00b0C is equivalent to 68 \u00b0F\n68\u00b0F is equivalent to 20 \u00b0C<\/code><\/pre>\n<h2>Resumo<\/h2>\n<p>Voc\u00ea acabou de criar uma biblioteca PHP simples que converte a temperatura de Celsius para Fahrenheit e vice-versa em uma classe orientada a objetos que pode ser reutilizada em outros aplicativos. Voc\u00ea viu como usar o Composer para criar um pacote a partir da classe com o comando Composer Init, e aprendeu algumas pr\u00e1ticas recomendadas b\u00e1sicas de organiza\u00e7\u00e3o de c\u00f3digo para sua biblioteca. Voc\u00ea publicou sua biblioteca no Packagist para que voc\u00ea e outros desenvolvedores possam us\u00e1-la como depend\u00eancia em outros projetos.<\/p>\n<p>Obviamente, quando terminar de desenvolver seu aplicativo, voc\u00ea precisar\u00e1 hosped\u00e1-lo. Leve seu desenvolvimento PHP ao pr\u00f3ximo n\u00edvel com a <a href=\"https:\/\/sevalla.com\/application-hosting\/\">hospedagem de aplicativos web<\/a> na Kinsta. Voc\u00ea pode implantar seu <a href=\"https:\/\/docs.sevalla.com\/templates\/overviewphp-examples\">aplicativo PHP baseado no Composer<\/a> em minutos. Basta <a href=\"https:\/\/docs.sevalla.com\/applications\/get-started\/add-an-application\">adicionar seu aplicativo<\/a> por meio do reposit\u00f3rio git do seu projeto, e a Kinsta cuida do resto. O arquivo Composer \u00e9 detectado automaticamente e seu aplicativo \u00e9 constru\u00eddo automaticamente. Voc\u00ea pode <a href=\"https:\/\/sevalla.com\/pricing\/\">come\u00e7ar<\/a> sem riscos hoje mesmo!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Com a reutiliza\u00e7\u00e3o de c\u00f3digo, surge o problema do gerenciamento de depend\u00eancias, historicamente um processo bastante manual e propenso a erros. Felizmente, nos \u00faltimos anos, a &#8230;<\/p>\n","protected":false},"author":306,"featured_media":66684,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1018,1017],"class_list":["post-66683","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-ferramentas-desenvolvimento-web","topic-linguagens-desenvolvimento-web"],"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>Como Criar seu Pr\u00f3prio Pacote Composer - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Voc\u00ea criou uma biblioteca PHP! Agora compartilhe seu c\u00f3digo com outros desenvolvedores criando seu pr\u00f3prio pacote Composer.\" \/>\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\/pt\/blog\/criar-pacote-composer\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como Criar seu Pr\u00f3prio Pacote Composer\" \/>\n<meta property=\"og:description\" content=\"Voc\u00ea criou uma biblioteca PHP! Agora compartilhe seu c\u00f3digo com outros desenvolvedores criando seu pr\u00f3prio pacote Composer.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-01T14:05:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-08T13:32:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3042\" \/>\n\t<meta property=\"og:image:height\" content=\"1521\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rexford Nyarko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Voc\u00ea criou uma biblioteca PHP! Agora compartilhe seu c\u00f3digo com outros desenvolvedores criando seu pr\u00f3prio pacote Composer.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rexford Nyarko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/\"},\"author\":{\"name\":\"Rexford Nyarko\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c\"},\"headline\":\"Como Criar seu Pr\u00f3prio Pacote Composer\",\"datePublished\":\"2024-03-01T14:05:42+00:00\",\"dateModified\":\"2024-03-08T13:32:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/\"},\"wordCount\":2270,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg\",\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/\",\"name\":\"Como Criar seu Pr\u00f3prio Pacote Composer - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg\",\"datePublished\":\"2024-03-01T14:05:42+00:00\",\"dateModified\":\"2024-03-08T13:32:28+00:00\",\"description\":\"Voc\u00ea criou uma biblioteca PHP! Agora compartilhe seu c\u00f3digo com outros desenvolvedores criando seu pr\u00f3prio pacote Composer.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ferramentas de Desenvolvimento Web\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/ferramentas-desenvolvimento-web\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Como Criar seu Pr\u00f3prio Pacote Composer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"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\/pt\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c\",\"name\":\"Rexford Nyarko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8ea3fcc13c21943da23935661f79d708?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8ea3fcc13c21943da23935661f79d708?s=96&d=mm&r=g\",\"caption\":\"Rexford Nyarko\"},\"description\":\"Rexford Nyarko is a solution architect with a background in software and network systems, cloud environments, server administration, and various database technologies. Rexford particularly enjoys explaining technical concepts to non-technical audiences.\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/author\/rexfordnyarko\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Como Criar seu Pr\u00f3prio Pacote Composer - Kinsta\u00ae","description":"Voc\u00ea criou uma biblioteca PHP! Agora compartilhe seu c\u00f3digo com outros desenvolvedores criando seu pr\u00f3prio pacote Composer.","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\/pt\/blog\/criar-pacote-composer\/","og_locale":"pt_PT","og_type":"article","og_title":"Como Criar seu Pr\u00f3prio Pacote Composer","og_description":"Voc\u00ea criou uma biblioteca PHP! Agora compartilhe seu c\u00f3digo com outros desenvolvedores criando seu pr\u00f3prio pacote Composer.","og_url":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2024-03-01T14:05:42+00:00","article_modified_time":"2024-03-08T13:32:28+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg","type":"image\/jpeg"}],"author":"Rexford Nyarko","twitter_card":"summary_large_image","twitter_description":"Voc\u00ea criou uma biblioteca PHP! Agora compartilhe seu c\u00f3digo com outros desenvolvedores criando seu pr\u00f3prio pacote Composer.","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg","twitter_creator":"@kinsta_pt","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Rexford Nyarko","Tempo estimado de leitura":"12 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/"},"author":{"name":"Rexford Nyarko","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c"},"headline":"Como Criar seu Pr\u00f3prio Pacote Composer","datePublished":"2024-03-01T14:05:42+00:00","dateModified":"2024-03-08T13:32:28+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/"},"wordCount":2270,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg","inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/","url":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/","name":"Como Criar seu Pr\u00f3prio Pacote Composer - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg","datePublished":"2024-03-01T14:05:42+00:00","dateModified":"2024-03-08T13:32:28+00:00","description":"Voc\u00ea criou uma biblioteca PHP! Agora compartilhe seu c\u00f3digo com outros desenvolvedores criando seu pr\u00f3prio pacote Composer.","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/02\/create-composer-package.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/criar-pacote-composer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Ferramentas de Desenvolvimento Web","item":"https:\/\/kinsta.com\/pt\/topicos\/ferramentas-desenvolvimento-web\/"},{"@type":"ListItem","position":3,"name":"Como Criar seu Pr\u00f3prio Pacote Composer"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","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\/pt\/#\/schema\/person\/53c94a171caf3b63f1aeaa9aef1eab8c","name":"Rexford Nyarko","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8ea3fcc13c21943da23935661f79d708?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8ea3fcc13c21943da23935661f79d708?s=96&d=mm&r=g","caption":"Rexford Nyarko"},"description":"Rexford Nyarko is a solution architect with a background in software and network systems, cloud environments, server administration, and various database technologies. Rexford particularly enjoys explaining technical concepts to non-technical audiences.","url":"https:\/\/kinsta.com\/pt\/blog\/author\/rexfordnyarko\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/306"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=66683"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66683\/revisions"}],"predecessor-version":[{"id":67509,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66683\/revisions\/67509"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66683\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66683\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66683\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66683\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66683\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66683\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66683\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66683\/translations\/es"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66683\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/66684"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=66683"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=66683"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=66683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}