Falarei aqui sobre alguns pontos no desenvolvimento com o CakePHP que exigem um certo conhecimento do mesmo, então, caso você seja um iniciante, recomendo que você leia outros artigos para poder entender primeiro do básico.

Apresentando

As camadas do bolo nos já bem conhecemos, mas cada uma dessas camadas tem seus adereços. Um deles é o Helper (o FormHelper especificamente). Então vejamos a tabela do relacionamento entre essas camadas e seus adereços.

View Helper
Controller Components
Model Behavior's e Data Sourcers

Component

Usamos componentes quando queremos compartilhar funções genéricas entre controladores. Por exemplo, se você estiver pesando em sair copiando e colando funções nos controllers, então sugiro que use um componente.

O Cake traz por padrão alguns componentes muitos importantes, são eles:

  • Segurança
  • Sessões
  • Lista de controle de acessos (ACL)
  • E-mails
  • Cookies
  • Autenticação
  • Manipulação de requisições

Alguns desses componentes vem ativos por padrão que é o caso do Sessão(Session), mas podemos habilitá-los das seguintes maneiras.

Listagem 1. habilitando componentes

            //habilitar apenas para um controller específico
            <?php 
                class ControladorController extends AppController{
                    //habilita o componente email para esse controller
                    $components = array('Email');
        }
        //habilitando para todos os controller's
        class AppController extends Controller{
                    //habilita o componente email para todos controller's
                    $components = array('Email');
        }
        ?>
        

É possivel criarmos nosso próprios componentes, mas isso não vem ao caso agora deixaremos para um post relacionado a criação de helpers e componentes.

Helper

Aqui está uma definição do próprio manual do cake:

“Helpers são componentes para uma apresentação em camadas de sua aplicação. Eles contém apresentações lógicas que podem ser compartilhadas entre views, elements, ou layouts. Neste capítulo mostraremos para você como criar seu próprio helper e o básico do core helpers do CakePHP”

E links para artigos meus nos quais falei sobre helpers.

Princípios do Form Helper do CakePHP
Relacionamento entre Models, HtmlHelper e Finalização do CRUD - Introdução ao CakePHP

Em resumo, os Helpers nos ajudam, na camada de View, a criar componentes HTML usando funções em PHP. Isso torna o desenvolvimento mais rápido e organizado.

O CakePHP já traz em seu core Helpers muito importantes, como, por exemplo, O FormHelper e o HtmlHelper ,esses já vêm habilitados para uso. Ele traz, entre outros, o TimeHelper e o NumberHelper que são utilizados para formatar data e números respectivamente. Esses não vêm habilitados. Para habilitar um helper podemos fazer de três formas, são elas:

  • No AppController, assim o helper fica disponível para toda a aplicação;
  • Em um controlador específico, dessa forma o helper fica disponível para todas as ações do controller;
  • Em uma função para que fique visível apenas para a view respectiva.
Listagem 2. Habilitando o helper

            $this->Helper[] = “Time”;//assim mantém os outros helpers já definidos
        

Behaviour

Usamos um Behaviour(Comportamento) para separar a lógica do model, ou seja, tirar do model aquilo que não esteja diretamente ligado a ele. Para chamarmos um Behaviour fazemos o seguinte.

Listagem 3. Chamando um Behaviour

            //na classe do model		
            $actAs  = array(“Comportamento”);
        

Na Listagem 02 temos a forma mais básica de chamarmos um Behaviour, apartir daí podemos usar os métodos disponibilizados pelo Behaviour.

O CakePHP traz o Behaviour Tree que organiza os relacionamentos em árvore para tornar mais fácil, por exemplo, consultas e exclusões.

Data Sourcers

São conexões com fontes de dados, como o próprio nome já diz. Essas fontes de dados geralmente são os banco de dados, mas também podemos usar serviços da internet, por exemplo, podemos fazer um link com o twitter. Com um DS pronto basta configuramos o arquivo database.php para realizar a conexão e dizermos ao model para usar esse DS, veja.

Listagem 4. Configurando e usando um Data Souce

            // em database.php
            var $twitter = array(      
            'datasource' => 'twitter',       
            'login' => 'username',   
            'password' => 'password',    );
            //no model que deve usar o DS
            public $useDbConfig = 'twitter';
        

Bem fico por aqui, espero que tenham gostado, deixem seus comentários, dúvidas, sugestões e/ou críticas. Obrigado e até a próxima.