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:

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:

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:

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

 

Fábio S. Reszko

Sou Programador PHP desde 2006 e eu acredito sinceramente que programar usando um Framework PHP é a solução para os problemas de códigos desorganizados, difíceis de entender e de dar manutenção no futuro. Se você também acredita nisto, então fique à vontade em explorar meu blog.

  • Cristhian

    Amo site de vocês , conteúdo da mais alta qualidade. parabéns pelo trabalho desenvolvido.
    Dica, faz um post , jcrop+codeigniter

  • Valeu Cristhian!

  • Valeu, Fábio! Funcionou direitinho aqui!

    Abraço.

  • Legal Charles, fico feliz que tenha dado certo.
    Qualquer dúvida é só postar.

    Fabio

  • Vou começar a usar o composer… a ideia é muito boa.

    Parabéns pelas contribuições. O CI precisava mesmo de uma referência nacional.

  • Dennis Miguel Coleti

    Não consegui fazer funcionar para o banco itau, poderia me dar um exemplo ? a principio, fiz seu curso de CI a um tempo atrás, excelente curso, parabéns.