Plugin PassValidator para CakePHP
Uma das coisas que amedrontam desenvolvedores, principalmente de interfaces web, é controle de autenticação: registrar senhas, validar, autenticar um usuário, etc. No CakePHP existe o componente Auth, que cuida da autenticação de um usuário, mas essa autenticação precisa de senha e essa senha precisa ser válida, e muitas vez a tarefa de validar senha pode ser feita de várias maneiras. Pra facilitar isso, meu amigo Cauan Cabral, owner da Radig (www.radig.com.br), criou um plugin simples que ajuda na validação de senhas cadastradas.
O plugin consiste basicamente de um behavior que faz a tarefa de validação de senha conforme alguns parâmetros passados pelo desenvolvedor no seu model. Algumas opções default são:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Conforme o tipo de validação utilizada e as opções escolhidas pelo programador no model, algumas mensagens de erros são disparadas.
O plugin é open source e está disponível no Github : github.com/radig/pass_validator
Blog do Cauan Cabral: cauancabral.net/
PHP agora funciona no Android: PhpForAndroid
Uma descoberta interessante que chama a atenção de desenvolvedores PHP como eu. Uma versão do PHP foi criado pela empresa Irontec para funcionar através do interpretador para Android ASE (Android Scripting Environment) que já conta com outras linguagens interpretadas (Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, e Shell) e acessa alguns recursos do Android (mensagens do sistema, sensores, rede, etc.). Segundo Iván Mosquera, engenheiro de software da Irontec, a empresa começou a desenvolver aplicativos para Android feitos em Java, mas o foco principal dos projetos da Irontec era PHP. Sabendo da existência do ASE, que ainda não contava com PHP, eles iniciaram a criação do suporte ao PHP no ASE.
Como a última versão do ASE (r25) ainda não era apropriada para usar o PHP, os engenheiros da Irontec criaram uma versão r26 não oficial que funciona perfeitamente com a biblioteca PHP criada pela empresa(PHPForAndroid). Não há necessidade de um webserver, já que o PHPForAndroid conta com CLI (commando Line Interface). Não é possível ainda criar aplicações apartir do PHPForAndroid, mas é um bom incentivo aos desenvolvedores php a conhecer melhor a plataforma do Google.
A versão r26 do ASE, criada pela Irontec está disponível pra download no site oficial do PhpForAndroid, assim como o .apk para instalação do PhpForAndroid que vem com alguns scripts de exemplo. A interface do ASE é simples e fácil de usar. Esperamos que isso ainda tenha um bom futuro.
Criando Plugins no CakePHP
Criar plugins para o CakePHP não e muito diferente de criar uma aplicação CakePHP. Os plugins nada mais são que elementos adicionais da aplicação CakePHP (models, views, controllers, behaviors, etc) e não é necessário criar o trio model-controller-view para que o plugin funcione, porém, conforme a necessidade do plugin, os elementos básicos de uma aplicação e outros elementos coadjuvantes (helpers, components, behaviors) poderão ser adicionados.
1. Criando o diretório do plugin
Numa aplicação aplicação CakePHP qualquer crie um diretório com o nome do plugin.
../plugins/nome_do_plugin
Use de preferência um nome em minúsculo, separando as palavras por underscore. Tenha certeza que o nome do plugin seja diferente do nome de algum controlador existente na aplicação. A hierarquia de diretórios segue o mesmo padrão de uma aplicação CakePHP
2 . Criando um controlador
Para que o plugin possa ser acessado por uma url, é necessária a criação de um controlador e algumas views. Antes de criar o controlador, um controlador base deve ser criado. No diretório do plugin, crie um arquivo chamado nome_do_plugin_app_controller.php com o seguinte conteúdo:
1 2 3 4 5 6 7 8 | <?php class NomeDoPluginAppController extends AppController { //algumas actions e callbacks } ?> |
Não é necessário colocar métodos no controlador, porém você poderá definir as ações que serão utilizadas apenas pelo plugin. Opcionalmente, caso haja necessidade de se usar models, crie um model base “nome_do_plugin_app_model.php”
1 2 3 4 5 6 7 8 | <?php class NomeDoPluginAppModel extends AppModel { //alguns métodos } ?> |
3. Criando controladores e views
Para criar os controllers do seu plugin, crie um diretório “controllers” no diretório do plugin. O nome do controlador não precisa do nome do plugin como prefixo, porém tente criar um nome particularmente único. O controlador deverá estender o controlador base do plugin:
1 2 3 4 5 6 7 8 | <?php class MeuControladorController extends NomeDoPluginAppController { //... } ?> |
O resto é o que normalmente é feito para se visualizar uma action. Crie um diretório “views/meu_controlador” para inserir as views das actions correspondentes.
Para adicionar um model de um plugin em sua aplicação, é necessário chamar o model com o nome do plugin prefixado, separado por “.” (ponto). Por exemplo, para chamar o model “Pie” do plugin “Bakery” no seu controlador, escreva:
1 2 3 |
Para adicionar outros componentes do plugin, adicione sempre o prefixo do nome do plugin separado por ponto.




Radig Soluções em TI