leitura de
Encontrou um problema no conteúdo? Por favor, deixe seu comentário!

Tudo começou com esse tweet:

E durante a semana seguinte rolou a entrevista com os palestrantes do PHP’n Rio 2012:

Nessa entrevista, um dos assuntos que eu repeti várias vezes, foi sobre a organização de projetos e mencionei o Composer algumas vezes.

Mas afinal, o que é o Composer?

Composer is a tool for dependency management in PHP. It allows you to declare the dependent libraries your project needs and it will install them in your project for you.

O Composer nada mais é do que um gerenciador de dependências… Com ele você define a lista de bibliotecas (e versões) das quais o seu projeto depende, e ele cuida da instalação, organização e “inclusão” das mesmas.

Gerenciadores de pacotes (ou dependências) são muito comuns em outras linguagens, como é o caso do Composer pra fazer isso no PHP! :)

Mas como assim, Arnaldo?

Suponhamos que você esteja trabalhando num projeto que faça uso (dependa) do Twig… Mas esse exemplo vale pra qualquer biblioteca, seja o PHPThumb, WideImage, MongoDB ou qualquer outra.

Se o seu projeto estiver versionado (seja SVN ou Git), essas bibliotecas provavelmente estão dentro do seu repositório, em versões “congeladas” e caso você queira atualizá-las você tem que fazer isso manualmente e depois atualizar seu repositório, acertei?

Já com o Composer, essas bibliotecas são gerenciadas de forma independente do seu projeto.

Ele funciona da seguinte forma:

  1. Você tem um projeto que depende de uma lista de bibliotecas
  2. Algumas dessas bibliotecas dependem de outras bibliotecas
  3. Você declara apenas as bibliotecas das quais o seu projeto depende
  4. O Composer encontra quais versões e quais pacotes precisam ser instalados e instala-os pra você (fazendo o download para dentro do seu projeto)
São ferramentas como o Composer que tornam seu trabalho profissionalorganizado.

Passo 1 - Instalando o Composer

Você pode instalar o Composer de duas formas: localmente (apenas para um projeto) ou de forma global (acessível para todos os projetos).

Para instalar localmente, você executa o seguinte comando:

Isso irá fazer o download do arquivo composer.phar (que é o executável que traz todas as funcionalidades do nosso amigo):

Arquivos .phar são aplicações PHP encapsuladas em um único arquivo, mais informações aqui: php.net/manual/en/intro.phar.php

Agora você já pode usar o Composer através do comando php composer.phar, mas se você quiser tornar essa instalação global, e fazer tudo através do comando composer, mova o executável para o diretório de executáveis do sistema (UNIX):

Caso tenha alguma dúvida sobre a instalação, recomendo a leitura da documentação oficial: getcomposer.org/doc/00-intro.md

Passo 2 - Declarando dependências

Agora que você já tem o Composer funcionando (seja via uma instalação local ou global), você precisa definir as dependências do seu projeto.

O Composer trabalha com um repositório de pacotes, o Packagist… É lá que você encontra o nome e versão dos pacotes que pode usar no seu projeto.

Como dito anteriormente, nosso projeto irá usa a última versão do Doctrine e do Twig, e definimos essas dependências no arquivo composer.json, na raiz do projeto:

Nesse arquivo estamos informando ao Composer que nosso projeto depende de duas bibliotecas:

  1. Doctrine -- Qualquer versão do branch 2.x, em estado beta
  2. Twig -- Qualquer versão do branch 1.x, em estado stable (estável)

Com isso você já aprende a sintaxe de versões, que poderia ser “1.1.2@dev”, “2.0@beta”, “2.x” ou “2.x@beta” ou “*” (para a última versão stable lançada) e “*@beta” para a última versão beta.

Passo 3 - Instalando as bibliotecas

Com essas dependências definidas, rodamos “php composer.phar install” (se a sua instalação foi local) ou “composer install” (se a sua instalação foi global)… e voila!

O Composer acabou de baixar todos os pacotes necessários, e suas dependências!

Perceba que o doctrine/orm depende de outros dois pacotes: symfony/console e doctrine/dbal, que por sua vez depende do doctrine/common… Mas o Composer cuidou disso pra você! :)

Os pacotes instalados foram todos colocados em uma pasta “vendor”, e dentro dele você pode notar o arquivo autoload.php com o seguinte código:

É aqui que toda a mágica acontece! Esse é o arquivo que vai garantir que seu projeto tenha acesso às bibliotecas.

Passo 4 - Usando as bibliotecas

Agora é só incluir o autoload.php em qualquer lugar do seu projeto e sair usando as bibliotecas:

Usando o Doctrine

Não vou entrar nos detalhes de utilização do Doctrine, apenas percebam que eu só fiz o include/require do autoload.php e saí usando as classes.

Para mais informações sobre o Doctrine, consulte a documentação oficial: www.doctrine-project.org/

Usando o Twig

O resultado vai ser uma mensagem “Olá, Thiago!”.

Para mais informações sobre o Twig, consulte a documentação oficial: twig.sensiolabs.org/documentation

Viram como é fácil? :)

Finalizando

Espero realmente que vocês tenham entendido o poder que há por trás do Composer, e que procurem fazer uso dessas maravilhosas ferramentas open-source que estão à nossa disposição.

Acredito que muitos de vocês (meus amados leitores) ainda estão começando na área, mas é esse tipo de ferramenta que vai te tornar um profissional cada vez melhor e atualizado.

Não se esqueça de deixar seu comentário dizendo o que achou do Composer e se acha que ele vai fazer alguma diferença nos seus projetos.

Um grande abraço e até a próxima! :)

Thiago Belem / Blog

Thiago Belem


Publicado

Thiago Belem / Blog

Thiago Belem / Blog

Artigos e tutoriais sobre desenvolvimento WEB

Continue lendo