O assunto não é tão novo assim, mas vem se tornando popular a cada dia e é provável que, daqui a algum tempo, tudo o que você precisar acoplar ao seu framework seja feito pelo sparks.
O CodeIgniter está se popularizando muito desde a mudança da metodologia de atualizações e da aceitação da comunidade internacional de desenvolvedores como parte colaboradora para novas funcionalidades. A velocidade com que o framework cresce e se estrutura vem ganhando proporções mais atraentes para profissionais e empresas desenvolvedoras de software.
Aplicativos que consomem serviços, uso da soluções REST, do SOAP, ORMs, sistemas de templates e, é claro, muitos “módulos” de terceiros fazem parte deste caminho. É possível encontrar bibliotecas para quase tudo, desde autenticação de usuários a templates. Essa evolução trouxe a necessidade de gerenciar a instalação desses módulos. E, com isso, surgiu o sparks.
Mas, então, o que é sparks?
Segundo o website sparks.org, “sparks é um sistema de gestão de pacotes para CodeIgniter que lhe permitirá instalar bibliotecas de alta qualidade em seus aplicativos instantaneamente”.
Que tal entender melhor na prática? Para isso, vamos criar um aplicativo capaz de exibir a sua timeline do Twitter:
1. Comece baixando a última versão do CodeIgniter. Descompacte em um caminho que possa ser acessado pelo seu servidor web. Eu escolhi uma pasta chamada “sparks”. Desse modo, posso acessar em http://localhost/sparks/. Até esse ponto, nada de diferente foi feito e nesse momento você deverá ver a tela de boas vindas do CodeIgniter.
2. Na pasta raíz do seu projeto, crie uma pasta chamada “tools”. Então, vamos seguir os passos encontrados neste artigo.
3. Baixe o arquivo spark-manager.zip aqui.
4. Descompacte o conteúdo do arquivo que você acabou de baixar. Você deverá ter na pasta “tools” um arquivo chamado spark sem nenhuma extensão.
5. Agora será necessário criar uma classe Loader, estendendo a classe Loader do CodeIgniter. Acesse aqui para obter o código fonte; copie-o para o seu editor e salve-o em “applicatton/core” com o nome de arquivo MY_Loader.php.
6. Estamos prontos para começar! Agora vamos utilizar o prompt de comando para obter os sparks seguindo os passos “Get Sparks” aqui.
Abra o seu prompt do DOS (Iniciar->Executar e digite CMD). Navegue até a pasta do projeto. No meu caso, CD C:/Webs/2012/Sparks. Obedeçam ao caminho de acordo com a instalação do seu servidor web. Você deverá ver algo como a tela a seguir:
Obs: Usuários do Linux provavelmente já sabem o que têm que fazer no Terminal.
Então, vamos utilizar o PHP via linha de comando para instalar um spark de exemplo, digitando o seguinte:
php tools\spark install -v1.0.0 example-spark
Embora apresentando um erro, o comando foi executado com sucesso exibindo ao final a mensagem “You´re on Fire!”, indicando que o conteúdo foi baixado e descompactado de acordo com o esperado.
Agora que o sparks “example” foi baixado e adicionado à pasta do projeto, você deverá ver na raíz do projeto uma pasta “sparks” com uma subpasta “example-spark” e a estrutura dos arquivos partindo da versão do spark instalado.
Para testar, abra o controlador e adicione o seguinte código ao método index da classe Welcome (estou presumindo que você não alterou nada além em seu projeto):
public function index(){ $this->load->spark('example-spark/1.0.0');
$this->example_spark->printHello(); }
Se tudo correr bem, ao acessar a URL no navegador, você deverá visualizar algo semelhante à figura a seguir:
Se você chegou até este ponto, tudo foi feito corretamente e poderemos prosseguir para nosso aplicativo.
Obtenha o CURL instalando via sparks com o seguinte comando no prompt:
php tools\spark install –v1.2.1 curl
E você deverá ver algo como a tela a seguir:
O próximo passo será, então, obter o RestClient. Do mesmo modo, digite no prompt de comando:
php tools\spark install –v2.1.0 restclient
Se tudo correr bem, ao final da operação, algo semelhante a tela a seguir será exibido:
Pronto, agora temos CURL e um cliente REST disponíveis, vamos aproveitar e utilizar para obter a timeline do Twitter. Precisamos alterar o método index da classe welcome para o seguinte código fonte:
public function index(){ $this->load->spark('curl/1.2.1');
$this->load->spark('restclient/2.1.0');
// Carregando a biblioteca Rest $this->load->library('rest');
// Inicializando apontando o servidor do Twitter.
$this->rest->initialize(array('server'=> 'http://twitter.com/'));
// Recebendo os twitters do usuário agabardo, troque para o seu usuário.
$tweets = $this->rest->get('statuses/user_timeline/agabardo.xml');
//Exibindo na tela para propositos de teste.
echo "<pre>"; print_r($tweets); echo "</pre>";
}
E, se tudo correr bem, você deverá visualizar a array com o conteúdo da sua timeline:
E como diriam meus amigos do Rio Grande: “mais simples que painel de Jipe”! Por isso acredito que muita coisa nova e boa deverá surgir empacotada com sparks.
Se você não tem afinidade com a linha de comando, existem outras alternativas, mas, convenhamos, digitar três ou quatro linhas no prompt do DOS ou terminal do Linux não é assim tão dolorido.
Não funcionou? Baixe os arquivos do projeto aqui.
***
Artigo original disponível em: http://codeigniter.com/news/a_quick_look_at_sparks
Abraços a todos!