Conheça mais sobre Composer, a ferramenta que trouxe uma das maiores revoluções para o PHP. Composer vai muito além de instalação de dependências, aprenda a poupar dias e meses de trabalho e passe a ser um dev feliz focado em trazer as melhores soluções técnicas para as necessidades do negócio.
7. Roteiro
● Introdução e breve histórico
● Uso do packagist como consumidor
● Criação de um pacote (tornando-se um mantenedor)
● Formas de distribuir este pacote
● Criação de scripts
9. O que é Composer e para que serve?
Ferramenta para gestão de dependências em projetos PHP inspirado no npm
(node JS) e bundler (do Ruby)
Isola dependências externas evitando necessidade de versionamento das
mesmas (vendor)
10. O que é Composer e para que serve?
Ferramenta para gestão de dependências em projetos PHP inspirado no npm
(node JS) e bundler (do Ruby)
Isola dependências externas evitando necessidade de versionamento das
mesmas (vendor)
11. O que são dependências?
Todo artefato de software seu ou de terceiros cuja finalidade é o
reaproveitamento de código.
12. Voltando: O que é Composer e para que serve?
Ferramenta para gestão de dependências em projetos PHP inspirado no npm
(node JS) e bundler (do Ruby)
Declaração de quais são todas as dependências externas e suas versões
(composer.json)
Isola dependências externas evitando necessidade de versionamento das
mesmas (vendor)
Possui um agregador de repositórios central
Possibilidade de uso de repositório descentralizado
Responsabilidade única das partes do projeto
13. O que é Composer e para que serve?
Você declara somente o que VOCÊ precisa O Composer encontra as bibliotecas
declaradas e as instala com todas as suas dependências satisfeitas.
Reduz o tamanho dos projetos
Reduz esforço
Facilita redistribuição de projetos
E muito mais!
14. Um pouco de história
Suporte a namespaces no PHP lançado no PHP 5.3 em 2009
Surgimento do PHP-FIG em 2013
Lançamento da PSR-0 com primeiras definições de autoload
Criação do Composer em 2013 após o PHP-FIG
Adoção do composer por parte de grandes frameworks e ferramentas
Lançamento da PSR-4 com melhorias nas definições de autoload em 2014
21. Visão do consumidor: instalação
É feito em PHP
Exige no mínimo PHP 5.3.2
Baixe do site do composer
Funciona em qualquer plataforma
Mais informações: https://getcomposer.org/doc/00-intro.md
23. Visão do consumidor: atualização manual
Caso tenha baixado manualmente, precisa atualizar manualmente:
composer selfupdate
https://getcomposer.org/doc/03-cli.md#self-update-selfupdate-
24. O que é um phar?
Simples:
phar = PHP Archive
http://php.net/phar
25. O que é um JSON?
JSON, um acrônimo para "JavaScript Object Notation", é um formato
leve para intercâmbio de dados computacionais. JSON é um
subconjunto da notação de objeto de JavaScript, mas seu uso não
requer JavaScript exclusivamente. O formato JSON foi originalmente
criado por Douglas Crockford e é descrito no RFC 4627. O media-type
oficial do JSON é application/json e a extensão é.json.
JSON
Mais em Wikipedia (PT)
26. O que é um JSON?
JSON, de forma resumida, é uma linguagem para formatar dados de forma leve
e legível para humanos.
Sua estrutura é bem simples e de fácil aprendizado. Ela permite estruturar e
formatar os dados em objetos.
28. Instalando a primeira dependência
Crie um arquivo composer.json e coloque a sua dependência nele:
{
"require": {
"vlucas/phpdotenv": "^2.4"
}
}
29. Instalando a primeira dependência
Crie um arquivo composer.json e coloque a sua dependência nele:
{
"require": {
"vlucas/phpdotenv": "^2.4"
}
}
30. Instalando a primeira dependência
composer require <maintainer>/<dependency>
Exemplo:
31. O que acontece após instalar?
Arquivos criados:
composer.json
Informações diversas sobre seu projeto, dependências instaladas, etc
composer.lock
Todas as versões que foram instaladas
vendor
Todas as dependências instaladas
34. composer.lock
Fixa as versões a serem instaladas garantindo que suas dependências e suas
subdependências estão exatamente nas mesmas versões
Sempre versione este arquivo!
35. Require e require-dev
Require é apenas para ambiente de produção
Require-dev é apenas para amiente de desenvolvimento:
Exemplo: phpunit, behat, phpcs, etc
36. Require e require-dev
Para ambiente de desenvolvimento:
composer install
Para ambiente de produção:
composer install --no-dev
Exemplo:
composer require phpunit/phpunit --dev
42. E se encontrar um bug?
Fork, corrija e use a correção
Exemplo:
"repositories" : [{
"type" : "vcs",
"url" : "https://github.com/vitormattos/oasis-mson-parser"
}
]