Você está na página 1de 7

Composer

Ademir Mazer Jr
ademir.mazer.jr@gmail.com

Contents
1 Gerenciamento de dependncias em PHP

2 Composer

3 Caractersticas

4 Problema/Soluo

5 Instalando

6 Onde esto as dependncias?

7 Configurando

8 Vamos praticar

9 composer.json

10 instalando as dependncias

11 instalando as dependncias

12 Autoload

13 Autoload

14 slug

6
1

15 Atualizando

15.1 php composer.phar update . . . . . . . . . . . . . . . . . . . . . .

Gerenciamento de dependncias em PHP

Figure 1: Composer

Composer
Um gerenciador de dependncias para PHP
inspirado no npm (nodeJS) e bundler (do Ruby)

Caractersticas
Simplicidade para manter dependncias do projeto
Consistncia das bibliotecas com as verses corretas
Reduo do peso de seu projeto, no necessrio embutir
bibliotecas no versionamento
Facilita o trabalho em equipe

Problema/Soluo
Seu projeto depende de vrias bibliotecas/frameworks
Estas bibliotecas podem depender de outras (inderetas para seu
projeto)
Voc declara somente as dependncias diretas de seu projeto
O Composer encontra as verses correspondentes das mesmas e
as instala
O Composer instala todas as dependncias indiretas

Instalando
1. Siga os passos descritos no endereo:
https://getcomposer.org/download
ou
2. Baixe o phar diretamente
https://getcomposer.org/composer.phar

Onde esto as dependncias?


Pacotes/projetos em
Packgist: https://packagist.org/
Github: https://github.com/

Configurando
Arquivo chamado composer.json na raiz do seu projeto

"name": "Nome do projeto",


"description": "Breve descrio do que a aplicao se propoe a fazer",
"authors": [
{
"name": "Seu nome",
"email": "seu-email@seu-dominio.com"
}
],
"require": {
"php": ">=5.2.8"
}

Vamos praticar
Crie um diretrio para este exemplo: composer-teste
Copie o arquivo composer.phar para dentro deste diretrio
Crie um arquivo, no raiz deste diretrio, chamado: composer.json
Adicione o contedo seguir a este arquivo

9
{

composer.json

"name": "Nome do projeto",


"description": "Breve descrio do que a aplicao se propoe a fazer",
"authors": [
4

"name": "Seu nome",


"email": "seu-email@seu-dominio.com"

}
],
"require": {
"php": ">=5.2.8",
"kevinlebrun/slug.php": "1.*"
}

10

instalando as dependncias

Execute o composer para que ele baixe e instale as dependncias


php composer.phar install
1. caso o php no esteja em seu PATH, digite o caminho completo para sua
execuo

11

instalando as dependncias
Este comando far o composer ler as configuraes setadas no
arquivo json
instalar todas as bibliotecas/pacotes necessrios para a sua
aplicao
se estas mesmas bibliotecas possurem dependncias, as mesmas
sero resolvidas
desta forma, ao instalar um pacote qualquer todas suas dependncias so resolvidas automaticamente.
Ainda: cria uma pasta chamada vendor e o arquivo composer.lock

12

Autoload

Agora temos:
O composer gerenciando as dependncias
as dependncias definidas em nosso arquivo composer.json
5

uma pasta contendo todas as dependncias necessrias


o autoloader do composer que encarrega-se de registar todos os
namespaces dos arquivos baixados na pasta vendor

13

Autoload
crie um arquivo index.php e inclua o autoloader do composer
<?php
header('Content-Type: text/html; charset=utf-8');
require 'vendor/autoload.php';

1. Importante que esteja definido que o contedo ser exibido utilizando


a codificao UTF-8 pois problemas podem ocorrer no tratamento de
caracteres especiais como acentuaes.

14

slug
o cdigo completo do arquivo index.php

<?php
header('Content-Type: text/html; charset=utf-8');
require 'vendor/autoload.php';
$slugifier = new \Slug\Slugifier();
// Definindo tratamento de caracteres com acentuao
$slugifier->setTransliterate(true);
$frase = 'Frase com acentuao para teste de criao de slug';
$slug = $slugifier->slugify($frase);
echo '<b>Frase natural: </b>' . $frase . "<br /><br />";
echo '<b>Frase com aplicao de slug: </b>' . $slug . "<br /><br />";

15

Atualizando

Para atualizar as dependncias ou instalar novas, execute


6

15.1

php composer.phar update

Dvidas ??