Skip to content
Roberto L. Machado edited this page Mar 28, 2015 · 16 revisions

O composer é uma excelente ferramenta disponível para usuários e desenvolvedores de PHP, permiti que sejam instalados pacotes (bibliotecas, frameworks, classes, etc.) com comandos simples.

Pré-requisitos (para composer e o NFePHP)

apt-get install curl php5 php5-cli php5-gd php5-curl php5-mcrypt php5-xdebug 

Para instalar eu recomendo a instalação GLOBAL, dessa forma podemos ter várias aplicações em diferentes repositórios (ou pastas) usando um mesmo instalador (composer.phar). Para instalar globalmente execute como root:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Periodicamente você terá que atualizar esse arquivo do composer para isso é só executar, como root:

composer self-update

Muito bem, com o composer instalado vamos fazer uso dele em nossas aplicações. O composer possui uma enorme lista de pacotes a serem instalados e pode ser vista em Packagist para usar qualquer um desses pacotes você tem apenas que criar um arquivo denominado "composer.json", coloca-lo na raiz de seu sistema e executar:

composer install

Esse comando irá baixar e instalar todos os pacotes e suas dependências na pasta "vendor" e montar um arquivo "autoload.php" para permitir a localização automática de todas as classes. É isso mesmo, não será mais necessário nenhum "include" ou "require" em sua aplicação apenas um "use".

Quando você executar o comando acima, será criado também um arquivo composer.lock, na mesma pasta raiz, que será usado para as próximas atualizações dos pacotes (ou seja a próxima vez que usar o composer). Uma vez que os pacotes estejam carregados na pasta vendor e você quiser atualizar é só executar:

composer update

Caso hajam atualizações o sistema irá perguntar o deve fazer, se atualiza ou não o pacote, etc.

Configuração

Bom já vimos a parte básica, mas para que isso funcione necessitamos do arquivo composer.json. Esse arquivo não é tão simples, mas também não é nenhum monstro. Existem vários tutotiais na internet sobre como monta-lo, segue um exemplo:

'''json { "name": "robmachado/hermes", "description": "hermes devel", "keywords": ["hermes", "devel"], "license": "MIT", "type": "project", "require": { "laravel/framework": "5.0.*", "nfephp-org/nfephp": "dev-develop" }, "require-dev": { "phpunit/phpunit": "~4.0", "phpspec/phpspec": "~2.1" }, "autoload": { "classmap": [ "database" ], "psr-4": { "robmachado\hermes\": "app/" } }, "autoload-dev": { "classmap": [ "tests/TestCase.php" ] }, "scripts": { "post-install-cmd": [ "php artisan clear-compiled", "php artisan optimize" ], "post-update-cmd": [ "php artisan clear-compiled", "php artisan optimize" ], "post-create-project-cmd": [ "php -r "copy('.env.example', '.env');"", "php artisan key:generate" ] }, "config": { "preferred-install": "dist" } } ''' O que mais interessa nesse arquivo são os campos "require" e "autoload" que vão definir os pacotes e como serão encontrados pelo autoload.