Composer para Gestão de Dependências - Encontro PHP - Season
-
Upload
rogerio-prado-de-jesus -
Category
Technology
-
view
642 -
download
1
description
Transcript of Composer para Gestão de Dependências - Encontro PHP - Season
COMPOSERPARA GESTÃO DE DEPENDÊNCIAS
Rogério Prado de JesusEncontro 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 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)
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 de Vagrant
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