{"id":1056,"date":"2024-05-20T20:53:28","date_gmt":"2024-05-20T23:53:28","guid":{"rendered":"https:\/\/thiagorossi.com.br\/blog\/?p=1056"},"modified":"2025-12-02T19:34:19","modified_gmt":"2025-12-02T22:34:19","slug":"usando-composer-e-packagist","status":"publish","type":"post","link":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/","title":{"rendered":"Usando Composer e Packagist"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Usando Composer e Packagist<\/strong>: O desenvolvimento moderno de aplica\u00e7\u00f5es <strong>PHP<\/strong> depende fortemente de c\u00f3digo de terceiros (bibliotecas e <em>frameworks<\/em>). Para gerenciar esse complexo ecossistema de bibliotecas e suas depend\u00eancias internas, o <strong>Composer<\/strong> e o <strong>Packagist<\/strong> s\u00e3o ferramentas indispens\u00e1veis que promovem a padroniza\u00e7\u00e3o e a efici\u00eancia.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">1. O que \u00e9 o Composer? O Gerenciador de Depend\u00eancias<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O <strong>Composer<\/strong> \u00e9 o <strong>gerenciador de depend\u00eancias<\/strong> oficial para PHP. Ele atua como uma ferramenta de linha de comando que:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Declara<\/strong> as bibliotecas que seu projeto precisa (as <em>depend\u00eancias<\/em>).<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Resolve<\/strong> as depend\u00eancias aninhadas (se a Biblioteca A depende da B, o Composer baixa ambas).<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Instala<\/strong> os pacotes em um diret\u00f3rio isolado do projeto.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Gera<\/strong> o <strong>Autoload<\/strong> para que voc\u00ea possa usar as classes dos pacotes imediatamente.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Composer n\u00e3o \u00e9 um gerenciador de pacotes<\/strong>, mas sim um gerenciador de depend\u00eancias, pois ele lida com bibliotecas por projeto, instalando-as localmente, ao contr\u00e1rio de ferramentas que instalam globalmente.<\/p>\n<\/blockquote>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">2. O que \u00e9 o Packagist? O Reposit\u00f3rio Central<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O <strong>Packagist<\/strong> \u00e9 o <strong>reposit\u00f3rio central<\/strong> para pacotes PHP. Pense nele como uma grande loja onde todos os pacotes PHP compat\u00edveis com o Composer est\u00e3o catalogados.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Quando voc\u00ea declara uma depend\u00eancia em seu projeto, o <strong>Composer busca o pacote e as informa\u00e7\u00f5es de vers\u00e3o no Packagist<\/strong>.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">O Packagist apenas armazena metadados (nome, vers\u00e3o e link do reposit\u00f3rio). Os arquivos reais do pacote s\u00e3o baixados do reposit\u00f3rio de controle de vers\u00e3o (VCS) do pacote, como o <strong>GitHub<\/strong>.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">3. \u2699\ufe0f Como o Composer Funciona (Arquivos Chave)<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A m\u00e1gica do Composer reside em tr\u00eas elementos principais que ele gera e utiliza:<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">A. <code>composer.json<\/code> (Declara\u00e7\u00e3o)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Este \u00e9 o <strong>cora\u00e7\u00e3o<\/strong> do seu projeto. \u00c9 um arquivo JSON onde voc\u00ea declara as depend\u00eancias e outras configura\u00e7\u00f5es do seu projeto.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">JSON<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"name\": \"meu-projeto\/aplicacao\",\n    \"description\": \"Um projeto PHP simples.\",\n    \"require\": {\n        \"php\": \"&gt;=8.1\",\n        \"monolog\/monolog\": \"^3.0\",\n        \"vlucas\/phpdotenv\": \"^5.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"App\\\\\": \"src\/\"\n        }\n    }\n}\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong><code>require<\/code><\/strong>: Lista as depend\u00eancias necess\u00e1rias para a execu\u00e7\u00e3o do projeto.\n<ul class=\"wp-block-list\">\n<li><strong><code>monolog\/monolog<\/code><\/strong>: O nome do pacote no Packagist (fornecedor\/nome).<\/li>\n\n\n\n<li><strong><code>^3.0<\/code><\/strong>: A restri\u00e7\u00e3o de vers\u00e3o (ex: <code>^3.0<\/code> significa vers\u00e3o 3.x, mas n\u00e3o 4.0).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong><code>autoload<\/code><\/strong>: Define regras para o <strong>Autoload<\/strong> do seu pr\u00f3prio c\u00f3digo (al\u00e9m dos pacotes).<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">B. <code>composer.lock<\/code> (Estado Congelado)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Ap\u00f3s a primeira execu\u00e7\u00e3o do comando <code>install<\/code>, o Composer cria o arquivo <strong><code>composer.lock<\/code><\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Este arquivo <strong>congela<\/strong> as vers\u00f5es exatas de <em>todos<\/em> os pacotes instalados (incluindo depend\u00eancias aninhadas).<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Ele garante que <strong>qualquer pessoa<\/strong> que execute <code>composer install<\/code> receba as <strong>mesmas vers\u00f5es<\/strong> exatas, promovendo consist\u00eancia em ambientes de desenvolvimento, teste e produ\u00e7\u00e3o.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Boas Pr\u00e1ticas:<\/strong> Voc\u00ea <strong>deve<\/strong> versionar o arquivo <code>composer.lock<\/code> em seu controle de vers\u00e3o (Git).<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">C. Diret\u00f3rio <code>vendor\/<\/code> e <code>autoload.php<\/code> (Execu\u00e7\u00e3o)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong><code>vendor\/<\/code><\/strong>: \u00c9 o diret\u00f3rio onde o Composer baixa e instala <strong>todos<\/strong> os pacotes declarados. Este diret\u00f3rio <strong>n\u00e3o deve ser versionado<\/strong> no Git.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong><code>autoload.php<\/code><\/strong>: O Composer gera este arquivo que cont\u00e9m toda a l\u00f3gica para mapear automaticamente classes para arquivos. Incluir este arquivo no seu <em>script<\/em> principal \u00e9 o suficiente para carregar qualquer classe do <code>vendor\/<\/code> ou do seu pr\u00f3prio c\u00f3digo (configurado em <code>composer.json<\/code>).<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Seu script principal (ex: index.php)\nrequire 'vendor\/autoload.php';\n\n\/\/ Agora voc\u00ea pode usar classes de pacotes sem se preocupar com require\/include:\nuse Monolog\\Logger;\n$log = new Logger('name'); \n\/\/ ...\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">4. \ud83d\ude80 Comandos Essenciais<\/h2>\n\n\n\n<figure class=\"wp-block-table has-medium-font-size\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Comando<\/strong><\/td><td><strong>Prop\u00f3sito<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong><code>composer install<\/code><\/strong><\/td><td>Baixa e instala as depend\u00eancias <strong>exatas<\/strong> listadas no <strong><code>composer.lock<\/code><\/strong>. Se o <code>lock<\/code> n\u00e3o existir, ele usa o <code>composer.json<\/code> e cria o <code>lock<\/code>. (Usado em produ\u00e7\u00e3o ou por novos desenvolvedores).<\/td><\/tr><tr><td><strong><code>composer update<\/code><\/strong><\/td><td>Atualiza as depend\u00eancias de acordo com as restri\u00e7\u00f5es no <strong><code>composer.json<\/code><\/strong> e atualiza o <strong><code>composer.lock<\/code><\/strong>. (Usado para atualizar pacotes).<\/td><\/tr><tr><td><strong><code>composer require vendor\/package<\/code><\/strong><\/td><td>Uma forma r\u00e1pida de <strong>adicionar<\/strong> um novo pacote ao <code>composer.json<\/code> e instal\u00e1-lo imediatamente.<\/td><\/tr><tr><td><strong><code>composer dump-autoload<\/code><\/strong><\/td><td>Regenera o arquivo <code>autoload.php<\/code> sem reinstalar pacotes. \u00datil se voc\u00ea adicionar novas regras no bloco <code>autoload<\/code> do <code>composer.json<\/code>.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">5. \u2705 Vantagens do Uso de Composer<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Padroniza\u00e7\u00e3o:<\/strong> Fornece uma maneira uniforme de gerenciar depend\u00eancias em todos os projetos PHP.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Produtividade:<\/strong> Acesso instant\u00e2neo a milhares de bibliotecas testadas e mantidas pela comunidade via Packagist.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Seguran\u00e7a:<\/strong> Permite fixar vers\u00f5es espec\u00edficas de bibliotecas para evitar regress\u00f5es ou vulnerabilidades em atualiza\u00e7\u00f5es.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Resolu\u00e7\u00e3o de Conflitos:<\/strong> O Composer \u00e9 inteligente o suficiente para resolver conflitos de vers\u00f5es entre depend\u00eancias de diferentes pacotes.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">\u2705 Conclus\u00e3o Usando Composer e Packagist<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Usando Composer e Packagist<\/strong>: O <strong>Composer<\/strong> \u00e9 a funda\u00e7\u00e3o do desenvolvimento PHP moderno. Ele utiliza o <strong>Packagist<\/strong> como seu cat\u00e1logo central para baixar, instalar e gerenciar as depend\u00eancias do seu projeto de forma eficiente. Ao dominar os arquivos <strong><code>composer.json<\/code><\/strong> e <strong><code>composer.lock<\/code><\/strong>, e utilizar a funcionalidade de <strong>Autoload<\/strong>, voc\u00ea garante que seus projetos sejam mais <strong>organizados<\/strong>, <strong>confi\u00e1veis<\/strong> e f\u00e1ceis de manter.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Toda jornada tem um in\u00edcio, e o in\u00edcio para se tornar um desenvolvedor back-end \u00e9 dominar as seguintes tecnologias, que voc\u00ea encontra aqui mesmo:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/sql\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp\" alt=\"SQL\" class=\"wp-image-942\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">SQL<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/php\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png\" alt=\"Capa Curso PHP\" class=\"wp-image-2835\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP-300x169.png 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">PHP<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/laravel\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp\" alt=\"Laravel\" class=\"wp-image-1642\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">Laravel<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">E se voc\u00ea gosta do nosso conte\u00fado, n\u00e3o deixe de contribuir adquirindo os servi\u00e7os e produtos dos nossos apoiadores e empresas que somos associados:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/hostinger.com.br\/?REFERRALCODE=1THIAGO62\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/03\/hostinger.png\" alt=\"Hospedagem Hostinger\" class=\"wp-image-92\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNDYlc\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/ofertas-amazon.webp\" alt=\"Ofertas Amazon\" class=\"wp-image-1308\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNKmt0\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/amazonprime.webp\" alt=\"Amazon Prime\" class=\"wp-image-1307\"\/><\/a><\/figure>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>Usando Composer e Packagist: O desenvolvimento moderno de aplica\u00e7\u00f5es PHP depende fortemente de c\u00f3digo de&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2835,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-1056","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","wpcat-11-id"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Usando Composer e Packagist - BLOG THIAGO ROSSI<\/title>\n<meta name=\"description\" content=\"Usando Composer e Packagist: Neste artigo, exploraremos em detalhes o que s\u00e3o essas ferramentas, como funcionam e como podem otimizar ...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Usando Composer e Packagist - BLOG THIAGO ROSSI\" \/>\n<meta property=\"og:description\" content=\"Usando Composer e Packagist: Neste artigo, exploraremos em detalhes o que s\u00e3o essas ferramentas, como funcionam e como podem otimizar ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/\" \/>\n<meta property=\"og:site_name\" content=\"BLOG THIAGO ROSSI\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-20T23:53:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-02T22:34:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png\" \/>\n\t<meta property=\"og:image:width\" content=\"758\" \/>\n\t<meta property=\"og:image:height\" content=\"426\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Thiago Rossi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thiago Rossi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/\"},\"author\":{\"name\":\"Thiago Rossi\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\"},\"headline\":\"Usando Composer e Packagist\",\"datePublished\":\"2024-05-20T23:53:28+00:00\",\"dateModified\":\"2025-12-02T22:34:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/\"},\"wordCount\":777,\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Capa-PHP.png\",\"articleSection\":[\"PHP\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/\",\"name\":\"Usando Composer e Packagist - BLOG THIAGO ROSSI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Capa-PHP.png\",\"datePublished\":\"2024-05-20T23:53:28+00:00\",\"dateModified\":\"2025-12-02T22:34:19+00:00\",\"description\":\"Usando Composer e Packagist: Neste artigo, exploraremos em detalhes o que s\u00e3o essas ferramentas, como funcionam e como podem otimizar ...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Capa-PHP.png\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Capa-PHP.png\",\"width\":758,\"height\":426,\"caption\":\"PHP\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/usando-composer-e-packagist\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Usando Composer e Packagist\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"name\":\"THIAGO ROSSI\",\"description\":\"Mais de 20 anos de experi\u00eancia no mercado de TI!\",\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"alternateName\":\"TR | CURSO WEB DEV\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\",\"name\":\"THIAGO ROSSI\",\"alternateName\":\"TR | CURSO WEB DEV\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"width\":300,\"height\":300,\"caption\":\"THIAGO ROSSI\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\",\"name\":\"Thiago Rossi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"caption\":\"Thiago Rossi\"},\"description\":\"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \\\"GDD \u2013 O Guia Definitivo\\\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.\",\"sameAs\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\",\"https:\\\/\\\/instagram.com\\\/thiagorossix86\",\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"],\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/author\\\/thiagorossi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Usando Composer e Packagist - BLOG THIAGO ROSSI","description":"Usando Composer e Packagist: Neste artigo, exploraremos em detalhes o que s\u00e3o essas ferramentas, como funcionam e como podem otimizar ...","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:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/","og_locale":"pt_BR","og_type":"article","og_title":"Usando Composer e Packagist - BLOG THIAGO ROSSI","og_description":"Usando Composer e Packagist: Neste artigo, exploraremos em detalhes o que s\u00e3o essas ferramentas, como funcionam e como podem otimizar ...","og_url":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/","og_site_name":"BLOG THIAGO ROSSI","article_published_time":"2024-05-20T23:53:28+00:00","article_modified_time":"2025-12-02T22:34:19+00:00","og_image":[{"width":758,"height":426,"url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png","type":"image\/png"}],"author":"Thiago Rossi","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Thiago Rossi","Est. tempo de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/#article","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/"},"author":{"name":"Thiago Rossi","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87"},"headline":"Usando Composer e Packagist","datePublished":"2024-05-20T23:53:28+00:00","dateModified":"2025-12-02T22:34:19+00:00","mainEntityOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/"},"wordCount":777,"publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png","articleSection":["PHP"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/","url":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/","name":"Usando Composer e Packagist - BLOG THIAGO ROSSI","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/#primaryimage"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png","datePublished":"2024-05-20T23:53:28+00:00","dateModified":"2025-12-02T22:34:19+00:00","description":"Usando Composer e Packagist: Neste artigo, exploraremos em detalhes o que s\u00e3o essas ferramentas, como funcionam e como podem otimizar ...","breadcrumb":{"@id":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/#primaryimage","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png","width":758,"height":426,"caption":"PHP"},{"@type":"BreadcrumbList","@id":"https:\/\/thiagorossi.com.br\/blog\/usando-composer-e-packagist\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thiagorossi.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Usando Composer e Packagist"}]},{"@type":"WebSite","@id":"https:\/\/thiagorossi.com.br\/blog\/#website","url":"https:\/\/thiagorossi.com.br\/blog\/","name":"THIAGO ROSSI","description":"Mais de 20 anos de experi\u00eancia no mercado de TI!","publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"alternateName":"TR | CURSO WEB DEV","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thiagorossi.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/thiagorossi.com.br\/blog\/#organization","name":"THIAGO ROSSI","alternateName":"TR | CURSO WEB DEV","url":"https:\/\/thiagorossi.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","width":300,"height":300,"caption":"THIAGO ROSSI"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/linkedin.com\/in\/thiagox86"]},{"@type":"Person","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87","name":"Thiago Rossi","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","caption":"Thiago Rossi"},"description":"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \"GDD \u2013 O Guia Definitivo\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.","sameAs":["https:\/\/thiagorossi.com.br\/blog","https:\/\/instagram.com\/thiagorossix86","https:\/\/linkedin.com\/in\/thiagox86"],"url":"https:\/\/thiagorossi.com.br\/blog\/author\/thiagorossi\/"}]}},"_links":{"self":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/1056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1056"}],"version-history":[{"count":1,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/1056\/revisions"}],"predecessor-version":[{"id":5106,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/1056\/revisions\/5106"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media\/2835"}],"wp:attachment":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1056"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1056"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}