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

Post on 05-Jul-2015

642 views 1 download

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

COMPOSERPARA GESTÃO DE DEPENDÊNCIAS

Rogério Prado de JesusEncontro PHP - Season

Julho 2013

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

OBRIGADO!

• about.me/rogeriopradoj