
Como criar e publicar seu próprio pacote PHP no Packagist
Olá pessoal! Hoje quero compartilhar com vocês como criar e publicar pacotes PHP no Packagist. Você já criou um código PHP reutilizável e queria instalar em outro projeto sem a necessidade de ficar duplicando código e até compartilhar com a comunidade PHP?
Então, hoje vou criar um simples pacote e ensiná-los como publicar no packagist. O pacote que vou criar vai ser algo bem simples, um pacote que soma dois números e retorna o valor soma.
Neste tutorial, você vai aprender como:
- Criar a estrutura de um pacote PHP.
- Usar o Composer para gerenciar dependências.
- Publicar no Packagist.org.
Estrutura inicial do projeto
Crie a estrutura de diretórios do seu pacote. Aqui está um exemplo básico:
package-soma/
├── src/
│ └── Calculadora.php
├── tests/
│ └── CalculadoraTest.php
├── composer.json
├── composer.lock
└── phpunit.xml
Configurando o Composer
Dentro da pasta do projeto, inicialize o composer.json
com:
composer init
Esse comando inicia um assistente interativo. Preencha as informações solicitadas, como:
Nome: seunome/pacote-exemplo
Descrição: Uma breve descrição do que o pacote faz.
Tipo: Geralmente “library”.
Licença: Ex: MIT
Dependências: Pressione Enter para pular se não tiver dependências ainda.
Ao final, o Composer gerará o composer.json
, com esse abaixo:
{
"name": "dtgfranca/package-soma",
"require": {
"phpunit/phpunit": "^12.2"
},
"autoload": {
"psr-4": {
"Dtgfranca\\PackageSoma\\": "src/"
}
},
"authors": [
{
"name": "Diego França",
"email": "[email protected]"
}
]
}
Escrevendo o código do pacote
No diretório src/
, crie a classe principal do seu pacote.
src/Calculadora.php
<?php
namespace DtfFranca\PackageSoma;
class Calculadora
{
public function somar(int $a, int $b): int
{
return $a + $b;
}
}
Adicionando testes (opcional, mas recomendado)
Crie testes no diretório tests/
com o PHPUnit.
tests/CalculadoraTest.php
<?php
use PHPUnit\Framework\TestCase;
use DtfFranca\PackageSoma\Calculadora;
class CalculadoraTest extends TestCase
{
public function testSomar()
{
$calc = new Calculadora();
$this->assertEquals(4, $calc->somar(2, 2));
}
}
Instale o PHPUnit se ainda não tiver:
composer require --dev phpunit/phpunit
E rode os testes com:
vendor/bin/phpunit
Publicando o nosso pacote no packagist
Agora que subimos para o git, vamos acessar o packagist.org. Ao acessar será mostrado a tela:

- Clique no menu “Submit” localizado na parte superior direita
- Adicione o link do repositório do pacote criado
- Clique em “Check”

Clique em “Submit” e seu pacote já se encontra no packagist para instalação:

Dicas adicionais
- Se o pacote estiver com
"minimum-stability": "dev"
, adicione também"prefer-stable": true
nocomposer.json
. - Faça tag (versão) no GitHub (ex:
v1.0.0
) para que o Packagist reconheça versões estáveis. - Inclua um
README.md
claro com instruções de uso. - Adicione uma licença (por exemplo,
LICENSE
com conteúdo da MIT).
Link do repositório: