Já tinha visto muitas vezes o João José reclamando que não tinha um gerenciador de plugins feito o do rails… Inclusive, havia até postado aqui no KISS uma idéia que tinha encontrado no blog @TheKeyBoard…
A idéia é bem interessante, porém existe apenas um repositório centralizado, que o próprio desenvolvedor mantém.
A partir disso, surgiram nossas primeiras divagações:
- Por que nao possibilitar que cada usuário possa manter seu próprio repositório?
- Podíamos possibilitar a criação de um script de instalação/desinstalação?
- E se existisse um jeito de especificar as dependencias, e elas serem automaticamente resolvidas?
- Pouts! Mas se eu não quizer manter um repositório só pra poder guardar um link pra um plugin?
Assim surgiu o Plugin Manager, que ainda está em fase de implementação… Mas creio eu que está completo o suficiente para ser usado, testado, e também para que novas idéias surjam, não só nossas, mas de todos aqueles que se interessarem pelo projeto.
Botando pra Quebrar
Dentro da pasta APP/plugins/ execute:
git clone git://github.com/lucius/plugin_manager.git
pronto!
cake/console/cake -app SUA_APLICACAO plugin
Agora é só seguir as instruções

É sempre bom lembrar que o projeto está hospedado no github e que qualquer pessoa que deseja fazer modificações pode ficar a vontade para tal…
Tags:
cakephp,
gerenciador de plugins,
plugin manager,
plugins,
shell
Topo
Certo dia, lá no canal do IRC fiquei sabendo de um projeto muito interessante, o CakeAutoTest do Rodrigo. Se trata de um plugin de CakePHP para realizar Auto-Testes. Não sei se comentei aqui no blog mas sempre acreditei que teste automatizado é a melhor ferramenta de feedback que podemos ter num projeto, ele nos dá confiança para prosseguirmos, coragem para refatorar nossos códigos, simplicidade e motivação para não pararmos de programar. E se feedback é tão bom, por que não termos esse feedback a todo momento!? É esta a idéia do AutoTest.

CakeAutoTest em Ação!
Depois que soube que ele tinha iniciado este projeto, fiquei muito empolgado para poder utilizar. Infelizmente acabei tendo alguns problemas e não tive muito tempo para explorar o plugin. Bem, a espera terminou, fiz um fork no projeto e arregacei as mangas para solucionar alguns dos problemas que estava enfrentando, de quebra, acabei fazendo um pouco mais e adicionei suporte a uma ferramenta de notificação para o Linux (libnotify). As minhas modificações já foram adicionadas no repositório principal do Rodrigo. Para instalar o Libnotify no Linux é fácil, com o ’slapt-get’ do Slackware é só fazer o download dos pacotes libnotify-0.4.*as e notification-daemon-0.4.*as (em outras distros eu não faço idéia como instalar).
Após fazerem clone no projeto do Rodrigo ou no meu na pasta de plugins vocês devem configurar o arquivo .autotest do seu projeto (crie um arquivo .autotest na raiz da pasta /app). Neste arquivo a idéia é armazenar as informações singulares de cada projeto, como as pastas que serão ignoradas e/ou o sistema de notificação que irá utilizar. Para vocês terem uma idéia, este arquivo será carregado dentro do __construct() do AutoTestShell, portanto vocês poderão setar/utilizar qualquer variável da classe. Como exemplo, vocês podem olhar o .autotest que utilizo:
<?php
$this->ignore_files[] = '/autotest/';
// Adicionando a notificação do LibNotify
include( $this->paths['libs'].'libnotify.php');
?>
Para executar é simples, chame a Task autotest no Shell do CakePHP e deixa rolar. A cada modificação em qualquer arquivo do projeto, o plugin irá rodar os testes. Se você quebrou ou concertou algum teste, ele avisará. Simples e super útil! Agora, tudo que você fizer no projeto você terá o feedback se está melhorando ou estragando tudo!
Está ai a apresentação desta nova ferramenta para CakePHP, parabéns ao Rodrigo e qualquer dúvida que vocês tiverem é só comentar no post que terei o prazer de ajudar!
Tags:
autotest,
cakephp,
desenvolvimento,
plugins,
shell,
testing
Topo
Hoje, olhando o blog TheKeyBoard vi uma super notícia! Um repositório de plugins! Tinha tempo que procurava algo a respeito para CakePHP e não encontrava, me lembro até de ter comentado algo com o Renan no canal do CakePHP-PT, mas depois desisti da idéia. Pois bem, o John Anderson (parece que ele foi um dos responsáveis por desenvolver o CookBook) criou um ScriptShell que é possível instalar, enviar e atualizar Plugins em um repositório remoto que ele esta mantendo. A idéia é interessantíssima mas ainda está em fase de desenvolvimento (acabo de ver ele deixou o Config::read(‘debug’,2)), vamos esperar para ver melhor. O Rodrigo fez uns testes e disse que esta funcionando corretamente, fui testar também e realmente esta corretíssimo.
O conceito de instalar e atualizar extensões por linha de comando já é comum no Ruby on Rails, tanto que o Script responsável por isto já vem junto com o pacote do framework. Se eu não estou enganado, no RoR é possível até passar repositórios Git ou SVN dos Plugins que ele se encarrega do resto, mas o que o John fez já ajuda bastante.
É. parece que este ano vou utilizar ainda mais linhas de comando.
Tags:
cakephp,
plugins,
shell
Topo