Como instalar o CodeIgniter 3 via composer
UPDATE! <update>
Dentro do arquivo application/config/config.php onde você habilita o autoload via composer, existe uma configuração que deve ser feita e que, aparentemente, está errada no CodeIgniter.
Note que nos comentários lá dentro do config.php é dito que se você mudar para TRUE a linha que carrega o composer, o CodeIgniter irá procurar por funções de terceiros na pasta: application/vendor/autoload.php, porém esta pasta não existe.
A pasta vendor com a qual o composer trabalha fica na raiz do CodeIgniter.
Então acho estranho o CI pedir para você usar autoload do composer mas não apontar para a pasta vendor padrão do composer, que fica na raiz, assim: /vendor/autoload.php.
A solução está informada nos próprios comentários desta configuração. Em vez de você informar TRUE, você indica o caminho completo para a sua pasta vendor. Neste caso ficaria assim:
$config['composer_autoload'] = FCPATH.'vendor/autoload.php';
Desta maneira, o CI vai carregar o autoload.php correto e assim disponibilizar as aplicações de terceiros que você adicionou via composer.
Uma outra solução seria você criar a pasta vendor dentro de application, como é sugerido nos comentários, mas neste caso o composer não iria funcionar, já que este grava o autoload.php dentro da pasta vendor na raiz.
Eu acho que isto é um bug, apesar de que já saiu a versão 3.01 do CodeIgniter e isto não foi corrigido.
UPADTE! </fim update>
Agora, é possível instalar o CodeIgniter 3.0 via composer.
Se você passou alguns meses fora do planeta e não sabe o que é composer, dê uma olhada aqui: https://getcomposer.org/.
O composer é, basicamente, um gerenciador de dependências para o PHP. Ou seja, com ele fica muito fácil pra você instalar uma aplicação nova e também gerenciar a dependência de outras bibliotecas que sua aplicação precisa.
Você pode configurar tudo o que sua aplicação precisa dentro de um arquivo chamado composer.json, e então, quando você rodar o composer, ele irá instalar sua aplicação junto com as dependências que você indicou dentro deste arquivo, tudo automaticamente.
Hoje vamos ver como instalar o CodeIgniter 3.0 via composer.
Instalando o Composer
O primeiro passo é você instalar o composer no seu computador.
Tem pra todos os sabores de sistema operacional.
No site do composer, você irá clicar em Download e vai escolher a melhor forma de instalação baseada no seu sistema operacional.
Eu estou usando Windows aqui, então fui direto na opção Windows Installer. Baixei o executável e fui seguindo as instruções.
No meu caso estou usando o Wamp na minha máquina, então, em determinado momento da instalação do composer, ele irá pedir a localização do executável do PHP. Basta indicar C:\wamp\bin\php\php5.5.12\php.exe, ou a pasta onde está o executável no seu computador.
Vale informar que o composer pede que a biblioteca openssl esteja habilitada, caso contrário, ele não irá conseguir baixar os arquivos.
É importante que você feche e abra novamente o seu prompt de comando caso esteja aberto, pois caso contrário ele não irá reconhecer o composer, já que o instalador do composer faz alterações nas variáveis de ambiente do windows, e estas alterações só são reconhecidas pelo prompt de comando, após reiniciá-lo.
Agora, abra o prompt de comando e digite composer. Se aparecer um monte de informações mostrando como usar o composer, então a instalação deu certo.
Caso receba a mensagem que o comando composer não é reconhecido com um comando, então, reveja a instalação.
Instalando o CodeIgniter 3.0
Agora pra instalar o CodeIgniter ficou fácil. Digite a linha abaixo no seu prompt de comando:
composer create-project bcit-ci/codeigniter meu_projeto --prefer-dist
Explicação:
- composer: o próprio composer
- create-project: parâmetro que diz ao composer para criar um novo projeto
- bcit-ci/codeigniter: local de onde seu pacote será baixado. Neste caso, é este o endereço: https://github.com/bcit-ci/CodeIgniter
- meu_projeto: nome da pasta que o composer criará no seu computador com o CodeIgniter 3.0 dentro
- – -prefer-dist: indica que o composer irá baixar a última versão estável do CodeIgniter, neste caso, a 3.0
Eu sugiro você ir na raiz do seu servidor, no caso a pasta www do wamp, e rodar o comando acima ali dentro, então será criada uma pasta nova com o seu projeto já dentro do seu servidor localhost.
Após você rodar o comando acima, o composer vai procurar pelo pacote CodeIgniter, as dependências, caso existam, e vai baixar tudo pra dentro da sua pasta de projeto.
Pode levar um tempo pra fazer isto, no meu caso, levou menos que 1 minuto pra fazer tudo.
O composer possui vários comandos adicionais, vale a pena dar uma brincada com ele pra aprender.
Configurando o CodeIgniter pra usar o autoload do composer
O último passo agora é dizer ao CodeIgniter que ele precisa usar, também, o autoload do composer pra carregar as bibliotecas que foram baixadas.
Neste caso, somente uma biblioteca a mais vem por padrão, que é a mikey179/vfsStream, uma biblioteca de testes em PHP.
Pra fazer esta configuração, abra o arquivo application/config/config.php e na linha 143, procure por:
$config['composer_autoload'] = FALSE;
Basta mudar esta configuração para TRUE que o CodeIgniter passará a carregar todas as bibliotecas que estão na pasta vendor.
Como é dito nos comentários do arquivo acima, mudar esta opção para TRUE não substitui nem sobrescreve o arquivo padrão de autoload do CodeIgniter, mas somente indica ao framework que ele irá carregar agora as bibliotecas baixadas via composer.
Então é isto.
Sugiro que acostume-se a trabalhar com o composer pois é uma ferramente extremamente útil para o desenvolvedor PHP da atualidade.
Abraços e até outro post.
Fábio