Criando projetos com o Composer Artigo

Conheça os cursos gratuitos do WebDevBr! - Inscreva-se!


Este artigo foi publicado a 2 anos, 7 meses, 2 semanas, 6 dias atrás.

Quem já trabalha com o Composer sabe como ele agiliza o trabalho, ainda mais quando começamos a criar pequenos pacotes com recursos que usamos muito e assim evitar ficar escrevendo a mesma coisa toda hora. Pois bem, e se em vez de apenas pacotes criarmos uma estrutura "padrão de trabalho".

Essa dica é valiosa pra quem não usa um framework ou usa micro-frameworks.

Se você ainda não sabe usar o Composer ou não sabe criar pacotes, de uma olhada aqui.

Gostou deste artigo?

Receba atualizações semanais com novos artigos do WebDevBr e outras dicas!

Pois bem, é comum usarmos o composer.json para listar as dependências dos nossos projetos, e quando criamos nossos próprios pacotes ou de terceiros eles acabam indo para dentro do diretório vendor, isso inviabiliza criarmos um esqueleto para nossos projetos.

Pois bem, te apresento o comando create-project

Imagine a estrutura do composer.json, é claro que o CakePHP 3 ainda está em desenvolvimento, então o exemplo abaixo não vai funcionar, mas vamos ignorar isso e eu corrijo mais pra frente.

{
    "require": {
        "cakephp/app": "*",
    }
}

Ao rodarmos o comando 'php composer.phar install' ele pegaria o esqueleto do CakePHP 3 e jogaria dentro do diretório vendor, não é essa a intenção.

Então em vez disso vamos rodar 'php composer.phar create-project cakephp/app' .

A diferença é que em vez dele setar a dependência ele copia os arquivos do repositório para o diretório atual e executa um composer install dentro do esqueleto (o arquivo composer.json do próprio esqueleto) deixando tudo instaladinho.

Agora imagine que você tem uma série de configurações a executar na sua aplicação, o composer.json aceita o parâmetro script que pode rodar uma série de comandos pra você, o CakePHP 3, por exemplo, cria um Security.Salt e tenta setar permissões nos diretórios.

Mas se você rodou o comando acima vai ver que não deu certo, isso porque o CakePHP 3 ainda está em desenvolvimento, então precisamos informar a estabilidade mínima para dev.

{
    "minimum-stability": "dev",
    "require": {
        "cakephp/app": "*"
    }
}

E para ignorar este composer.json e usar o create-project:

php composer.phar create-project --prefer-dist -s dev cakephp/app [app_name]

Entenda que:

-prefer-dist baixa o arquivo compactado se disponível (um zip por exemplo).
-s é o mesmo que -stability e seta a estabilidade, neste caso dev (em desenvolvimento).
cakephp/app é o pacote a baixar.
[app_name] é opcional e deve ser substituido pelo nome do diretório a criar o projeto.

Claro que se você usar o git clone ou baixar o zip e rodar o composer install também vai funcionar, mas pra que complicar se você pode fazer tudo em uma única linha, simples né.


Cursos relacionados


* Parcelamento apenas cartão de crédito! Pode haver uma pequena variação no parcelamento em relação a simulações apresentadas!