10 dicas sobre CakePHP que podem acelerar e até mesmo salvar seu dia! Artigo

Conheça os cursos gratuitos do WebDevBr! - Inscreva-se!


Este artigo foi publicado a 4 anos, 11 meses, 3 semanas, 1 dia atrás.

Durante o dia a dia do desenvolvedor CakePHP existem passos que as vezes podem nos economizar algum tempo, conforme o tempo passa e vamos saindo do básico coisas como Components, Behaviors, Plugins e Helpers começam a fazer mais sentido e tornar o trabalho mais rápido e produtivo.

01 - Trabalhando com várias versões do CakePHP

No artigo sobre instalação avançada do CakePHP mostrei como mover o core e a aplicação para fora da pasta publica do seu servidor e assim evitar qualquer tipo de ataque direto ao seu aplicativo, mas uma dica que aprendi recentemente é sobre ter várias versões do CakePHP na pasta lib, então vou estender aquele artigo aqui e mostrar como faço. Toda vez que é lançada uma nova versão do CakePHP eu baixo e copio a pasta lib para dentro da outra pasta lib na minha instalação do CakePHP renomeando para a versão atual, vai ficando assim:

  • lib
    • 2.4.1
    • 2.4.2
    • 2.4.3

Dentro de cada uma das pastas fica o diretório Cake e dentro o core, assim:

Gostou deste artigo?

Receba atualizações semanais com novos artigos do WebDevBr e outras dicas!

/lib/2.4.2/Cake/

Com isso eu posso setar no CAKECOREINCLUDE_PATH a versão que quero usar do CakePHP, isso me ajuda a atualizar todas as minhas aplicações e testar cada uma com calma e sem me preocupar se algo vai dar errado, porque as outras aplicações continuam com a versão do Cake que estavam. Só pra saber: o CAKECOREINCLUDE_PATH fica na linha 65 do app/webroot/index.php (ou pelo menos ficava ai antes de você seguir o tutorial de instalação do CakePHP) Lá esta assim:

define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'lib');

E vai ficar assim:

define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'lib'.DS.'2.3.8');

Ou seja, depois do que já está escrito adicione .DS.'a.versao.do.cake', o DS é a divisão de diretórios (o / ou no caminho até o arquivo).

02 - Detectando ajax automaticamente

Outra coisa que sempre da problema quando se trabalha com CakePHP é o ajax, existem bastante recursos que visam "ajudar" na hora de conseguir uma requisição bacana, eu acho que dificulta. Então se você, assim como eu, gosta de fazer requisições ajax com javascript ou Jquery saiba que tem 3 linhas que podem fazer milagres por você. Adicione isso no seu AppController:

if($this->request->is('ajax')){
    $this->layout='ajax';
}

Com isso toda a requisição que for feita com ajax (inclusive do Javascript e do Jquery) vai setar o layout ajax, que não tem nenhuma formatação, ou seja, o retorno da action vem purinho pra você usar (inclusive em requisições externas, atenção nisso).

03 - Usar o Twitter Bootstrap com o CakePHP

Também já falei aqui sobre como fazer com que o CakePHP trabalhe em conjunto com o Twitter Bootstrap automaticamente, é bem simples de se fazer e quando terminar você pode juntar isso tudo em um plugin fácil de usar, veja como proceder. Depois de terminar de ler e executar o artigo que citei, basta criar a seguinte pasta dentro de app/Plugins:

TwitterBootstrap

E dentro dela a estrutura, copiando os arquivos que usamos no tutorial anterior:

  • Config
  • View
    • Elements
      • alerta.ctp
      • erro.ctp
      • info.ctp
      • sucesso.ctp
    • Helper
      • BootstrapFormHelper.php
      • BootstrapHtmlHelper.php
      • BootstrapPaginatorHelper.php
  • webroot
    • css
      • bootstrap.min.css
      • bootstrap.responsive.min.css
    • img
      • glyphicons-halflings.png
    • js
      • bootstrap.min.js

Para usar chame no seu AppController:

public $helpers = array(

    ‘Html’ => array(‘className’ => ‘TwitterBootstrap.BootstrapHtml’),
    ‘Form’ => array(‘className’ => ‘TwitterBootstrap.BootstrapForm’),
    ‘Paginator’ => array(‘className’ => ‘TwitterBootstrap.BootstrapPaginator’),

);

Não esqueça de carregar no seu bootstrap.php (app/Config/bootstrap.php):

CakePlugin::load('TwitterBootstrap');

Ou com CakePlugin:loadAll() também vai funcionar.

04 - Crie plugins para tudo

Outra coisa legal de se fazer é criar plugins para coisas que vão ser reutilizadas posteriormente como, por exemplo, o CMS (gerenciador de páginas de sites), gerenciador de mensagens enviadas ou o gerenciamento de clientes, mas de tudo isso o recurso mais importante para se transformar em plugin com certeza é o sistema de usuários, login, logout, cadastro, armazenamento de cookies... esse sim será reutilizado e melhorado com o tempo, então #ficadica: Faça um plugin com seu sistema de usuários, depois é só chamar no Auth:

public $components = array(
    'Auth' => array(
        'loginAction' => array(
            'controller' => 'users',
            'action' => 'login',
            'plugin' => 'users'
        )
    )
);

05 - Participe ativamente, estude

De todas as dicas aqui essa com certeza é a que mais vai lhe ajudar a médio e longo prazo. Procure participar das comunidades do CakePHP, tem muito profissional bom e que está disposto a ajudar e tirar suas dúvidas, leia blogs, comunidades e até mesmo o seu Facebook pode se transformar em uma ferramenta de trabalho poderosa. Veja bem, mesmo que aquela dúvida não seja a sua agora pode vira ser no futuro, leia tudo, comente o máximo que puder, erre, acerte, não importa: Participe. Uma lista de lugares legais pra você participar ou estudar:

Cheguei a ler postagens nesses lugares que na hora não me era interessante, mas depois me ajudou bastante!

06 - Use e abuse dos Core Libraries

O CakePHP tem recursos pra muitas coisas, ordenação de cadastros em esquema de "árvore", ACL, Paginação, RSS, Cache, Email, Log, rotas, Internacionalização, Gerenciamento de arquivos e pastas, enfim... Bastante coisa. Na hora de desenvolver vale dar uma passada na página com a listagem de recursos do Cake, você pode evitar ter que re-inventar a roda :D. http://book.cakephp.org/2.0/en/core-libraries.html

07 - Defina variáveis claras

Uma coisa que atrapalha muito são variáveis com nomes confusos, seja simples e conciso na hora de definir a nome das suas variáveis:

$a=$this->Auth->user('username'); <- Errado
$user=$this->Auth->user('username'); <- Correto

ou até mesmo:

$user=$this->Auth->user(); (para usar: $user['username'])

Fica mais fácil a manutenção e até mesmo o desenvolvimento, você só bate o olho e sabe o que é. Claro que este é um exemplo pra você entender.

08 - Constantes,  use e abuse

Um recurso muito util e pouco usado no php são as constantes, veja que o próprio cake usa isso para definir suas rotas e caminhos, agora imagine esse caso:

define('ATIVO',1);

define('INATIVO',0);

Claro que é só um exemplo, já que você pode definir ali valores muito maiores ou então aquela variável que você quer usar no seu código mas começa com número (isso é inválido e retorna um erro), com constantes isso é possível.

09 - Faça comentários, abuse deles.

Essa é rápida e direta: PARE DE ECONOMIZAR COMENTÁRIOS! Os comentários em PHP são ignorados na renderização, por isso, escreva com vontade, coloque exemplos de uso e até mesmo links para ajudar em posteriores manutenções, não economize, use o barra-barra (//, para uma linha) sim, mas de preferência para o comentários de várias linhas(/**/) para você escrever com vontade. Veja este exemplo que estou fazendo agora, só pra escrever sobre comentários o tanto de texto que usei, não seja preguiçoso, ajude o próximo, se ajude!

10 - Faça um curso.

Quer aprender mesmo?  Faça um curso de CakePHP, vale investir alguma coisa pra aprender a criar uma aplicação em CakePHP, você vai conhecer pessoas com idéias diferentes da sua, vai contar com a experiência de alguém que já sofreu com erros simples e complexos e aprender da forma mais certa e mais rápida como executar uma tarefa. Aqui tem vários cursos pra vocês.

E você tem uma dica? Manda ai nos comentário.


Cursos relacionados


* Parcelamento apenas cartão de crédito! Pode haver uma pequena variação no parcelamento em relação a simulações apresentadas!