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

24
COMPOSER PARA GESTÃO DE DEPENDÊNCIAS Rogério Prado de Jesus Encontro PHP - Season Julho 2013

description

Apresentação feita no dia 02 de julho de 2013 no evento Encontro PHP, da Season.

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

Page 1: 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

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

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

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

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

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

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

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

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

COMPOSER: COMO?• Criando seu projeto

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

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

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

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

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

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

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

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

MAIS UMA COISA(OU 2 OU 3...)

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

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

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

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

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

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

OBRIGADO!

• about.me/rogeriopradoj