composer para gestão de dependências - encontro php - season
DESCRIPTION
Apresentação feita no dia 02 de julho de 2013 no evento Encontro PHP, da Season.TRANSCRIPT
![Page 1: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/1.jpg)
COMPOSERPARA GESTÃO DE DEPENDÊNCIAS
Rogério Prado de JesusEncontro PHP - Season
Julho 2013
![Page 2: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/2.jpg)
QUEM SOU EU?
•@rogeriopradoj - Rogério Prado de Jesus
• PHP desde 2009
• blog: rogeriopradoj.com
• Grupo de usuários:
![Page 3: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/3.jpg)
QUEM SOU EU?
•@rogeriopradoj - Rogério Prado de Jesus
• Comunidade -> leva à evolução
• eventos
• contribuições
• bate-papo
![Page 4: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/4.jpg)
VAMOS FALAR DE COMPOSER...
.. E COMO ELE PODE AJUDAR SEU PROCESSO DE DESENVOLVIMENTO
![Page 5: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/5.jpg)
COMPOSER: O QUE É?
Ferramenta...
...para Gestão...
...de dependências em projetos PHP
![Page 6: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/6.jpg)
ProjetoSistema
Rígido Aberto
Principais diferenças (onde o Composer leva vantagem sobre a PEAR)
![Page 7: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/7.jpg)
SITUAÇÃO-PROBLEMA
Todos da equipe precisam ter versões consistentes das dependências do
projeto
Tanto em Dev quanto nos
outros Ambientes
Mesmo se houver diferentes projetos
rodando em paralelo com dependências “quase iguais” ou conflitantes
![Page 8: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/8.jpg)
COMPOSER: O QUE É?
• Por projeto
• Lista consistente de dependências e versões
• (composer.json)
• Forma consistente de distribuir bibliotecas
• Packagist.org
qualifica e clarifica ambiente do seu projeto
simplifica e padroniza a listagem
repositório central
![Page 9: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/9.jpg)
COMPOSER: COMO?
• Instalação
• Local/projeto
sempre que possível, instale a ferramenta globalmente
(e não por projeto)
![Page 10: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/10.jpg)
COMPOSER: COMO?
• Instalação
• Global
em getcomposer.org tem as instruções mais detalhadas, até com pacote para Windows
![Page 11: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/11.jpg)
COMPOSER: COMO?• Criando seu projeto
![Page 12: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/12.jpg)
COMPOSER: COMO?• Criando seu projeto subdependências
resolvidas pelo composer
} dependência que você havia listado
}
![Page 13: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/13.jpg)
COMPOSER: COMO?• Seu projeto usando um esqueleto
• traz as dependências (/vendor)
• e alguma estrutura de pastas, ex:
• /web
• /src
agiliza bootstrap de uma nova aplicação
![Page 14: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/14.jpg)
COMPOSER: COMO?• Usando suas dependências
facilita o carregamento das suas dependências
![Page 15: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/15.jpg)
COMPOSER: COMO?
•Na equipe, além do composer.json:
• composer.lock
garante que suas dependências e suas
subdependências estão exatamente nas
mesmas versões
![Page 16: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/16.jpg)
COMPOSER: COMO?
• Liberando sua biblioteca
seu pacote pode ser autocarregado pelovendor/autoload.php
mesmo se ele ainda não seguir a PSR-0
você e seu pacote como vendor/terceiro de outros (ou de você
mesmo)
![Page 17: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/17.jpg)
COMPOSER: COMO?
• Liberando sua biblioteca
restringe o ambiente onde sua biblioteca
funciona (não faça seu usuário perder tempo)
coisas que não precisam ser colocadas em produção
![Page 18: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/18.jpg)
nome completo do seu componente: “vendor/package”
seja encontrável
{
facilite a decisão jurídica do seu
usuário versão do PHP que o componente suporta
![Page 19: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/19.jpg)
MAIS UMA COISA(OU 2 OU 3...)
![Page 20: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/20.jpg)
MAIS UMA COISA(OU 2 OU 3...)
https://github.com/composer/installers
componentes específicos para
frameworks
![Page 21: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/21.jpg)
MAIS UMA COISA(OU 2 OU 3...)
Para não dizer que não falei de Vagrant
https://github.com/puphpet/puphpet-composer
instala a ferramenta de linha de comando + as dependências
![Page 22: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/22.jpg)
MAIS UMA COISA(OU 2 OU 3...)
https://github.com/robloach/component-installer
gerencia dependências de
front-end
concorrente do http://bower.io ?
![Page 23: Composer para Gestão de Dependências - Encontro PHP - Season](https://reader034.vdocuments.mx/reader034/viewer/2022042715/559894c11a28abde348b4597/html5/thumbnails/23.jpg)
MAIS• http://getcomposer.org
• docs
• book.pdf
• github
• Rafael Dohms: @rdohms
• Composer: putting dependencies on the score
• http://www.slideshare.net/rdohms
• Jordi Boggiano: @seldaek
• Dependency Management with Composer
• In-Depth with Composer
• http://slides.seld.be/
brasileiro que já
falou no mundo todo
• https://packagist.org/
• consuma
• compartilhe
um dos criadores