SlideShare a Scribd company logo
1 of 41
Composer 101 e sua integração com Drupal 8
Natan Moraes
Desenvolvedor
CI&T
Sobre mim
Contribuições:
- WF Tools
- Entity Scaffold
- Deploy - Content Staging
- Entity Dependency API
- Dev Roles Users
- Webhook
drupal.org/u/natanmoraes
Natan Moraes
Desenvolvedor
CI&T
Sobre o Composer
Sobre o Composer
Composer é uma ferramenta para
gerenciamento de dependências em PHP. Ela
lhe permite declarar as bibliotecas das quais
seu projeto depende and irá gerenciar
(instalar ou atualizar) as mesmas para você
- Introdução ao Composer (getcomposer.org)
● Faça o download do instalador
○ https://getcomposer.org/installer
● Execute o arquivo no terminal
○ php installer
● Mova o arquivo para uma pasta global
○ mv composer.phar /usr/local/bin/composer
● Faça o download do instalador
○ https://getcomposer.
org/Composer-Setup.exe
● Execute o arquivo
Como instalar o Composer
Utilizando o Composer
Arquivo composer.json
composer.json
Palavra-chave “require” diz ao composer: “Tudo que está declarado aqui é uma
dependência”
composer.json
Nome da biblioteca no formato vendor/biblioteca
composer.json
Versão da biblioteca. Ex.:
● 1.0
● 1.*
● >=1.0 <2.0
● branch-name
composer.json
composer.json - comando install
composer.json - comando install
Comando install: lê o arquivo composer.json e faz o download das bibliotecas
composer.json - comando install
Para cada dependência, a versão configurada no composer.json é encontrada
e o download é feito por git, svn etc
composer.json - comando install
O arquivo composer.lock é criado
Arquivo composer.lock
composer.lock
Após instalar as dependências, o Composer grava a lista exata de versões
Instaladas no arquivo composer.lock e “trava” o projeto nessas versões específicas
O comando composer install checa se o arquivo composer.lock existe e, se existir, faz
o download das versões especificadas nele
Isso garante que qualquer pessoa consiga instalar as mesma versões das bibliotecas se seguir
o composer.lock
O comando composer update lê o arquivo composer.json, detecta novas versões, faz o
download das mesmas e atualiza o arquivo composer.lock
Se nenhum arquivo composer.lock existir, o Composer vai criá-lo após os comandos install ou
update
Composer.lock - Diagrama
composer install
composer.lock?
composer update
composer.json
Download das versões
em composer.lock
Calcula versões baseadas
na configuração
Não
Sim
Cria composer.lock
composer.lock
Exemplo do composer.lock
Utilizando as bibliotecas
Utilizando as bibliotecas
O Composer gera um arquivo em vendor/autoload.php que facilita o uso de
bibliotecas que possuem informaçõa de autoload.
Para utilizar tais bibliotecas, basta incluir o arquivo acima no seu script PHP
Como criar uma biblioteca
Como criar uma biblioteca
Para uma biblioteca ser reconhecida pelo Composer, ela precisa de um arquivo
composer.json em sua raiz com alguns parâmetros básicos
Como criar uma biblioteca
Nome da biblioteca no padrão: vendor/biblioteca
Como criar uma biblioteca
Descrição da biblioteca
Como criar uma biblioteca
Informações de autoload
packagist.org
Publicando no packagist.org
Composer + Drupal
drupal-composer/drupal-project
https://github.com/drupal-composer/drupal-project
drupal-composer/drupal-project
O projeto fornece um template para início rápido de projetos Drupal.
Com um comando, já são instalados
● Drupal
● Drush
● Drupal Console
● Behat
Configurações para módulos drupal como
● Instalar bibliotecas tipo “drupal-module” na pasta “web/modules/contrib”
● Instalar bibliotecas tipo “drupal-theme” na pasta “web/themes/contrib”
drupal-composer/drupal-project
Demonstração instalação Drupal 8
● https://www.youtube.com/watch?v=FhrdVk9_5m0
Demonstração instalação do módulo Webform
● https://www.youtube.com/watch?v=Mp0h0Rox3fQ
Dúvidas?
Composer 101 e sua integração com Drupal 8
Natan Moraes
Desenvolvedor
CI&T

More Related Content

What's hot

Publiocação de páginas da web
Publiocação de páginas da webPubliocação de páginas da web
Publiocação de páginas da web
Carlos Melo
 
Instalação e uso do phpVirtualBox
Instalação e uso do phpVirtualBoxInstalação e uso do phpVirtualBox
Instalação e uso do phpVirtualBox
netinhoteixeira
 
Tutorial integrado flex_+_java_+_blazeds
Tutorial integrado flex_+_java_+_blazedsTutorial integrado flex_+_java_+_blazeds
Tutorial integrado flex_+_java_+_blazeds
wagnerlsrodrigues
 
Processo de upgrade_-_sharing_dock_-_v1.05.02[1]
Processo de upgrade_-_sharing_dock_-_v1.05.02[1]Processo de upgrade_-_sharing_dock_-_v1.05.02[1]
Processo de upgrade_-_sharing_dock_-_v1.05.02[1]
gilcbo
 

What's hot (20)

Php além do LAMP
Php além do LAMPPhp além do LAMP
Php além do LAMP
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
PHP com Docker
PHP com DockerPHP com Docker
PHP com Docker
 
Recuperar arquivos apagados da memória Interna do Android
Recuperar arquivos apagados da memória Interna do Android Recuperar arquivos apagados da memória Interna do Android
Recuperar arquivos apagados da memória Interna do Android
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
Publiocação de páginas da web
Publiocação de páginas da webPubliocação de páginas da web
Publiocação de páginas da web
 
Traduções no WordPress
Traduções no WordPressTraduções no WordPress
Traduções no WordPress
 
Instalação e uso do phpVirtualBox
Instalação e uso do phpVirtualBoxInstalação e uso do phpVirtualBox
Instalação e uso do phpVirtualBox
 
WP Composer
WP ComposerWP Composer
WP Composer
 
Como instalar o kdenlive para windows em 10 passos
Como instalar o kdenlive para windows em 10 passosComo instalar o kdenlive para windows em 10 passos
Como instalar o kdenlive para windows em 10 passos
 
Deploy Rails
Deploy RailsDeploy Rails
Deploy Rails
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
 
Tutorial integrado flex_+_java_+_blazeds
Tutorial integrado flex_+_java_+_blazedsTutorial integrado flex_+_java_+_blazeds
Tutorial integrado flex_+_java_+_blazeds
 
Usando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic FrameworkUsando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic Framework
 
Capistrano 3
Capistrano 3Capistrano 3
Capistrano 3
 
Processo de upgrade_-_sharing_dock_-_v1.05.02[1]
Processo de upgrade_-_sharing_dock_-_v1.05.02[1]Processo de upgrade_-_sharing_dock_-_v1.05.02[1]
Processo de upgrade_-_sharing_dock_-_v1.05.02[1]
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
 
Como usar o virtualbox-passo a passo
Como usar o virtualbox-passo a passoComo usar o virtualbox-passo a passo
Como usar o virtualbox-passo a passo
 
I educar-manual-de-instalaao
I educar-manual-de-instalaaoI educar-manual-de-instalaao
I educar-manual-de-instalaao
 
Composer para Gestão de Dependências - Encontro PHP - Season
Composer para Gestão de Dependências - Encontro PHP - SeasonComposer para Gestão de Dependências - Encontro PHP - Season
Composer para Gestão de Dependências - Encontro PHP - Season
 

Similar to Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8

Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
Milton Rodrigues
 
Sistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando ProgramasSistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando Programas
Luiz Arthur
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
Francisco Santos
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetos
Fabiano Rodrigues
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A Objetos
Rápido Site
 

Similar to Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8 (20)

Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
 
Composer dependency manager
Composer   dependency managerComposer   dependency manager
Composer dependency manager
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátil
 
Python CGI
Python CGIPython CGI
Python CGI
 
Instalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmenteInstalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmente
 
Cake Php
Cake PhpCake Php
Cake Php
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente Web
 
Sistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando ProgramasSistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando Programas
 
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
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A Objetos
 
Guia instalacao portal_web_sara
Guia instalacao portal_web_saraGuia instalacao portal_web_sara
Guia instalacao portal_web_sara
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1
 
Execução de programas
Execução de programasExecução de programas
Execução de programas
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
Web Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to LaravelWeb Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to Laravel
 
Mastering Laravel
Mastering LaravelMastering Laravel
Mastering Laravel
 

Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8