-
Notifications
You must be signed in to change notification settings - Fork 686
Usando o Composer
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.
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.
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:
{
"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.