SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
Entendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPEntendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPAdler Medrado
 
Contribuindo e criando software livre
Contribuindo e criando software livreContribuindo e criando software livre
Contribuindo e criando software livreVitor Mattos
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web ServicesDorneles Treméa
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Renato Groff
 
Backend na nuvem com docker
Backend na nuvem com dockerBackend na nuvem com docker
Backend na nuvem com dockerGiovanni Bassi
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017Vitor Mattos
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?Letticia Nicoli
 
ASP.NET Core 2.0 - Pointer - Janeiro-2018
ASP.NET Core 2.0 - Pointer - Janeiro-2018ASP.NET Core 2.0 - Pointer - Janeiro-2018
ASP.NET Core 2.0 - Pointer - Janeiro-2018Renato Groff
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyRelsi Maron
 
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimentoDevops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimentoThiago Ferreira
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
Desenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHPDesenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHPAndréia Santos
 

Mais procurados (20)

Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Entendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPEntendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHP
 
Contribuindo e criando software livre
Contribuindo e criando software livreContribuindo e criando software livre
Contribuindo e criando software livre
 
Fat binaries
Fat binariesFat binaries
Fat binaries
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web Services
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
 
Backend na nuvem com docker
Backend na nuvem com dockerBackend na nuvem com docker
Backend na nuvem com docker
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
 
PHP com Docker
PHP com DockerPHP com Docker
PHP com Docker
 
Desenvolvendo com IONIC
Desenvolvendo com IONICDesenvolvendo com IONIC
Desenvolvendo com IONIC
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Tdd com Node.js
Tdd com Node.jsTdd com Node.js
Tdd com Node.js
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
ASP.NET Core 2.0 - Pointer - Janeiro-2018
ASP.NET Core 2.0 - Pointer - Janeiro-2018ASP.NET Core 2.0 - Pointer - Janeiro-2018
ASP.NET Core 2.0 - Pointer - Janeiro-2018
 
Hubot deployments
Hubot deploymentsHubot deployments
Hubot deployments
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimentoDevops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Desenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHPDesenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHP
 

Semelhante a Composer: Gerenciamento de dependências em projetos PHP

Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Natan Moraes
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetosFrancisco Santos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetosFer Nando
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetosFabiano Rodrigues
 
Desenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livreelliando dias
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A ObjetosRápido Site
 
Como contribuir-com-open-source-php conference-2016
Como contribuir-com-open-source-php conference-2016Como contribuir-com-open-source-php conference-2016
Como contribuir-com-open-source-php conference-2016Marcos Paulo
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizadosThiago Rodrigues
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Apostila php
Apostila phpApostila php
Apostila phpmurilocbs
 
Apostila php
Apostila phpApostila php
Apostila phpkoldm2
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitMozDevz
 

Semelhante a Composer: Gerenciamento de dependências em projetos PHP (20)

WP Composer
WP ComposerWP Composer
WP Composer
 
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetos
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetos
 
Desenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livre
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A Objetos
 
Pho Aula 02
Pho Aula 02Pho Aula 02
Pho Aula 02
 
Como contribuir-com-open-source-php conference-2016
Como contribuir-com-open-source-php conference-2016Como contribuir-com-open-source-php conference-2016
Como contribuir-com-open-source-php conference-2016
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Apostila php
Apostila phpApostila php
Apostila php
 
Apostila php
Apostila phpApostila php
Apostila php
 
Apostila php
Apostila phpApostila php
Apostila php
 
Apostila php
Apostila phpApostila php
Apostila php
 
Apostila php
Apostila phpApostila php
Apostila php
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to Git
 
Git hub and Laravel
Git hub and Laravel Git hub and Laravel
Git hub and Laravel
 

Mais de Rogerio Prado de Jesus

Becoming a contributor, open sourcer and beyond: PHPSP + UOL
Becoming a contributor, open sourcer and beyond: PHPSP + UOLBecoming a contributor, open sourcer and beyond: PHPSP + UOL
Becoming a contributor, open sourcer and beyond: PHPSP + UOLRogerio Prado de Jesus
 
Becoming a Contributor, Open Sourcer and Beyond
Becoming a Contributor, Open Sourcer and BeyondBecoming a Contributor, Open Sourcer and Beyond
Becoming a Contributor, Open Sourcer and BeyondRogerio Prado de Jesus
 
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012Rogerio Prado de Jesus
 
Desenvolvimento PHP com Vagrant - 7Masters PHP
Desenvolvimento PHP com Vagrant - 7Masters PHPDesenvolvimento PHP com Vagrant - 7Masters PHP
Desenvolvimento PHP com Vagrant - 7Masters PHPRogerio Prado de Jesus
 
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012Rogerio Prado de Jesus
 
Desenvolvimento PHP com Vagrant - TDC 2012
Desenvolvimento PHP com Vagrant - TDC 2012Desenvolvimento PHP com Vagrant - TDC 2012
Desenvolvimento PHP com Vagrant - TDC 2012Rogerio Prado de Jesus
 

Mais de Rogerio Prado de Jesus (7)

Becoming a contributor, open sourcer and beyond: PHPSP + UOL
Becoming a contributor, open sourcer and beyond: PHPSP + UOLBecoming a contributor, open sourcer and beyond: PHPSP + UOL
Becoming a contributor, open sourcer and beyond: PHPSP + UOL
 
Becoming a Contributor, Open Sourcer and Beyond
Becoming a Contributor, Open Sourcer and BeyondBecoming a Contributor, Open Sourcer and Beyond
Becoming a Contributor, Open Sourcer and Beyond
 
Vagrant Got Plugins
Vagrant Got PluginsVagrant Got Plugins
Vagrant Got Plugins
 
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
 
Desenvolvimento PHP com Vagrant - 7Masters PHP
Desenvolvimento PHP com Vagrant - 7Masters PHPDesenvolvimento PHP com Vagrant - 7Masters PHP
Desenvolvimento PHP com Vagrant - 7Masters PHP
 
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
 
Desenvolvimento PHP com Vagrant - TDC 2012
Desenvolvimento PHP com Vagrant - TDC 2012Desenvolvimento PHP com Vagrant - TDC 2012
Desenvolvimento PHP com Vagrant - TDC 2012
 

Composer: Gerenciamento de dependências em projetos PHP

  • 1. COMPOSER PARA GESTÃO DE DEPENDÊNCIAS Rogério Prado 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 DE COMPOSER... .. 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 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
  • 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
  • 12. COMPOSER: COMO? • Criando seu projeto subdependências resolvidas pelo composer } dependência que você havia listado }
  • 13. 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
  • 14. COMPOSER: COMO? • Usando suas dependências facilita o carregamento das suas dependências
  • 15. 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
  • 16. 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)
  • 17. 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
  • 18. 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
  • 19. MAIS UMA COISA (OU 2 OU 3...)
  • 20. MAIS UMA COISA (OU 2 OU 3...) https://github.com/composer/installers componentes específicos para frameworks
  • 21. 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
  • 22. MAIS UMA COISA (OU 2 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