COMPOSER
PARA GESTÃO DE
DEPENDÊNCIAS
Rogério Prado de Jesus
Encontro PHP - Season
Julho 2013
QUEM SOU EU?
• @rogeriopradoj - Rogério Prado de Jesus
• PHP desde 2009
• blog: rogeriopradoj.com
• Grupo de usuários:
QUEM SOU EU?
• @rogeriopradoj - Rogério Prado de Jesus
• Comunidade -> leva à evolução
• eventos
• contribuições
• bate-papo
VAMOS FALAR DE COMPOSER...
.. E COMO ELE PODE
AJUDAR SEU PROCESSO
DE DESENVOLVIMENTO
COMPOSER: O QUE É?
Ferramenta...
...para
Gestão...
...de dependências
em projetos PHP
ProjetoSistema
Rígido Aberto
Principais diferenças (onde o Composer
leva vantagem sobre a PEAR)
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
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
COMPOSER: COMO?
• Instalação
• Local/projeto
sempre que possível, instale
a ferramenta globalmente
(e não por projeto)
COMPOSER: COMO?
• Instalação
• Global
em getcomposer.org tem as instruções mais
detalhadas, até com pacote para Windows
COMPOSER: COMO?
• Criando seu projeto
COMPOSER: COMO?
• Criando seu projeto subdependências
resolvidas pelo
composer
} dependência que você havia listado
}
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
COMPOSER: COMO?
• Usando suas dependências
facilita o
carregamento das
suas dependências
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
COMPOSER: COMO?
• Liberando sua biblioteca
seu pacote pode ser
autocarregado pelo
vendor/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)
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
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
MAIS UMA COISA
(OU 2 OU 3...)
MAIS UMA COISA
(OU 2 OU 3...)
https://github.com/composer/installers
componentes
específicos para
frameworks
MAIS UMA COISA
(OU 2 OU 3...)
Para não dizer que não falei
deVagrant
https://github.com/puphpet/puphpet-composer
instala a ferramenta
de linha de comando
+ as dependências
MAIS UMA COISA
(OU 2 OU 3...)
https://github.com/robloach/component-installer
gerencia
dependências de
front-end
concorrente do
http://bower.io ?
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
OBRIGADO!
• about.me/rogeriopradoj

Composer para Gestão de Dependências - Encontro PHP - Season

  • 1.
    COMPOSER PARA GESTÃO DE DEPENDÊNCIAS RogérioPrado de Jesus Encontro PHP - Season Julho 2013
  • 2.
    QUEM SOU EU? •@rogeriopradoj - Rogério Prado de Jesus • PHP desde 2009 • blog: rogeriopradoj.com • Grupo de usuários:
  • 3.
    QUEM SOU EU? •@rogeriopradoj - Rogério Prado de Jesus • Comunidade -> leva à evolução • eventos • contribuições • bate-papo
  • 4.
    VAMOS FALAR DECOMPOSER... .. E COMO ELE PODE AJUDAR SEU PROCESSO DE DESENVOLVIMENTO
  • 5.
    COMPOSER: O QUEÉ? Ferramenta... ...para Gestão... ...de dependências em projetos PHP
  • 6.
    ProjetoSistema Rígido Aberto Principais diferenças(onde o Composer leva vantagem sobre a PEAR)
  • 7.
    SITUAÇÃO-PROBLEMA Todos da equipeprecisam 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
  • 8.
    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
  • 9.
    COMPOSER: COMO? • Instalação •Local/projeto sempre que possível, instale a ferramenta globalmente (e não por projeto)
  • 10.
    COMPOSER: COMO? • Instalação •Global em getcomposer.org tem as instruções mais detalhadas, até com pacote para Windows
  • 11.
  • 12.
    COMPOSER: COMO? • Criandoseu projeto subdependências resolvidas pelo composer } dependência que você havia listado }
  • 13.
    COMPOSER: COMO? • Seuprojeto usando um esqueleto • traz as dependências (/vendor) • e alguma estrutura de pastas, ex: • /web • /src agiliza bootstrap de uma nova aplicação
  • 14.
    COMPOSER: COMO? • Usandosuas dependências facilita o carregamento das suas dependências
  • 15.
    COMPOSER: COMO? • Naequipe, além do composer.json: • composer.lock garante que suas dependências e suas subdependências estão exatamente nas mesmas versões
  • 16.
    COMPOSER: COMO? • Liberandosua biblioteca seu pacote pode ser autocarregado pelo vendor/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)
  • 17.
    COMPOSER: COMO? • Liberandosua 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
  • 18.
    nome completo doseu componente: “vendor/package” seja encontrável { facilite a decisão jurídica do seu usuário versão do PHP que o componente suporta
  • 19.
  • 20.
    MAIS UMA COISA (OU2 OU 3...) https://github.com/composer/installers componentes específicos para frameworks
  • 21.
    MAIS UMA COISA (OU2 OU 3...) Para não dizer que não falei deVagrant https://github.com/puphpet/puphpet-composer instala a ferramenta de linha de comando + as dependências
  • 22.
    MAIS UMA COISA (OU2 OU 3...) https://github.com/robloach/component-installer gerencia dependências de front-end concorrente do http://bower.io ?
  • 23.
    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
  • 24.