Skip to content

12 de abril de 2010

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
//...
var $uses = array('Bakery.Pie');
//...

Para adicionar outros componentes do plugin, adicione sempre o prefixo do nome do plugin separado por ponto.

Share your thoughts, post a comment.

(required)
(required)

Note: HTML is allowed. Your email address will never be published.

Subscribe to comments

Switch to our mobile site