Utilizando o Composer

Vamos falar sobre uma ferramenta muito interessante que ajuda no deploy de aplicações PHP, o Composer 

O composer não é um gerenciador de pacotes. Sim, ele trabalha com "pacotes" ou bibliotecas, mas eles são gerenciados por projeto, instalado-as num diretório dentro de sua aplicação (ex. vendor). Por padrão você nunca instala nada em escopo global. Assim é um gerenciador de dependências.

Bom, você já sabe o que é o composer, mas para que ele serve? Que problemas ele me resolve?

  1. Você tem um projeto que depende de várias bibliotecas
  2. Algumas dessas bibliotecas possuem suas próprias dependências
  3. Você declara somente o que você precisa
  4. O Composer detecta quais pacotes e suas respectivas versões e as instala (baixa para seu projeto)

    Mão na massa!

    Para utilizar o composer você precisa de uma aplicação PHP.

    $ rhc app create composer php-5.3

    Instalação do Composer

    A ativação do composer é bem fácil, se você já tem uma aplicação e deseja utilizar o composer basta clonar o repositório e seguir os passos:

    $ cd composer

    Adicione o trecho a seguir no final do arquivo .openshift/action_hooks/deploy ou crie o arquivo caso não exista.


    #!/bin/bash
    export COMPOSER_HOME="$OPENSHIFT_DATA_DIR/.composer"
    if [ ! -f "$OPENSHIFT_DATA_DIR/composer.phar" ]; then
    curl -s https://getcomposer.org/installer | /usr/bin/php -- --install-dir=$OPENSHIFT_DATA_DIR
    else
    /usr/bin/php $OPENSHIFT_DATA_DIR/composer.phar self-update
    fi ( unset GIT_DIR ; cd $OPENSHIFT_REPO_DIR ; /usr/bin/php $OPENSHIFT_DATA_DIR/composer.phar install )

    Certifique-se que o arquivo possua permissão de execução:

    $ chmod +x .openshift/action_hooks/deploy


    Agora vamos criar o arquivo composer.json, que é a definicão das dependências. Nesse caso o arquivo fica na raiz do repositório, assim as biblicotecas não são visíveis ao Apache.

    Vamos instalar a biblioteca do Mailgun para envio de emails. Artigo sobre envio de emails com Mailgun aqui.

    $ touch composer.json

    E adicione o trecho a seguir:

    {
    "require": {
    "mailgun/mailgun-php": "~1.1"
    }
    }

    Lembre-se que o arquivo é um json, então a estrutra deve ser obedecida.

    No momento da escrita deste artigo a versão do Mailgun é 1.1, verifique se existem atualizações em https://github.com/mailgun/mailgun-php

    Autoload:

    Vamos editar o arquivo php/index.php para carregar as dependências recém instaladas:

    require '../vendor/autoload.php';
    use Mailgun\Mailgun;


    Basta salvar as alterações e fazer o push da aplicação:

    $ git add .
    $ git commit -a -m "incluido composer"
    $ git push


    Pronto! Divirta-se com suas bibliotecas!

Tem mais dúvidas? Envie uma solicitação

0 Comentários

Por favor, entre para comentar.
Powered by Zendesk