m@dDog 5 Denunciar post Postado Maio 16, 2012 As dicas estão divididas em Controllers, Models, Views e Dicas Gerais Controllers Controllers são somente um tipo de interface entre Models e Views. Por isso Controllers NÃO DEVEM ter regras de negócios. Controllers devem ser "magros". Não ter regras de negócio não significa que não possam ter IFs.Exemplo (isso está correto): if ($this->User->save($this->request->data)) { $this->Session->setFlash(__('O usuário foi salvo com sucesso')); $this->redirect(array('action'=>'index')); } else { $this->Session->setFlash(__('O usuário não pôde ser salvo.')); } Utilize Components como um auxiliador do Controller.Exemplo:Um componente de e-mail que evita código duplicado entre controladores que disparam e-mails. Models Models não são somente para gravação de dados, as regras de negócio podem estar distrbuídas aqui. Os models são "gordos" (não entenda isso como poder fazer o que quiser nos models). Você pode criar models que não tenham uma tabela representativa em seu banco de dados. Se existem regras que podem ser compartilhadas entre Models, pode ser que você deva distribuir parte da lógica em comportamentos. Use Behaviors. Se ainda assim o model estiver ficando pesado, talvez haja alguma coisa de errado com sua lógica. Views Views são somente para imprimir resultados, NUNCA coloque regras de negócio. Aqui você deve evitar até mesmo os IFs. Se você tiver que utilizar IFs, crie um Helper para fazer isso. Se um Helper não pode te ajudar, existe alguma coisa errada com esse nome, ou com sua lógica.Exemplo: Você pode criar um helper para auxiliar em uma paginação (isso é só um exemplo, o CakePHP já tem helpers que fazem isso). Sempre que possível, escreva os textos com internacionalização.Exemplo (no CakePHP 2+):<?php echo __('Relatórios'); ?> em links e helpers também <?php echo $this->Html->link(__('Relatórios'), array('action' => 'reports')); ?> Dicas gerais Crie métodos e variáveis com nomes simples e concisos.Exemplo: NÃO USE: $x = 'Nome do usuário'; USE: $userName = 'Nome do usuário'; Comente seu código da mesma forma. Você pode colocar exemplos nos comentários de fluxo.Exemplo: /** * Saves a value for a key. * * E.g. * * $this->Model->saveKeyValue('language' => 'pt-br'); * * @param string $key * @param string $value * @return boolean True on success, or false on failure */ public function saveKeyValue($model, $key, $value = null) { Não faça comentários óbviosExemplo: // Salva os dados do usuário $this->User->save($data) Utilize constantes para códigos, valores etcExemplo: const INACTIVE = 0; const ACTIVE = 1; O método ficou grande? Passou de 30 linhas? Crie outros métodos menores, privados caso não precise de acesso por outras classes (o método deve caber na tela, até dois, e não estou falando de monitores de 32 polegadas). Crie Tests (seus colegas de trabalho e os clientes agradecem). O Book do CakePHP ajuda bastante. Se vocês concordam, discordam de algo ou tem mais dicas, escrevam. Compartilhar este post Link para o post Compartilhar em outros sites
Eduiagami 1 Denunciar post Postado Maio 17, 2012 Pessoal, também sugiro que estudem muito Orientação a Objetos. Estudem muito o Core do Cakephp. Lembre Cakephp é PHP! abraços Compartilhar este post Link para o post Compartilhar em outros sites
m@dDog 5 Denunciar post Postado Maio 24, 2012 Sempre desenvolva com o CakePHP usando o debug 1 ou 2. // app/Config/core.php Configure::write('debug', 1); Assim: Você tem todas as saídas de erros, warning e etc (nem preciso dizer que se você ver algum deve corrigi-lo). Os caches são destruídos constantemente. Não precisa usar print_r($variável), você pode usar o debug($variável) que formata a saída com mais facilidade. Já em produção sempre deixe o debug com o valor 0. É mais seguro e deixa o CakePHP mais rápido. Compartilhar este post Link para o post Compartilhar em outros sites
Lindomar Santos 0 Denunciar post Postado Junho 12, 2012 Eba.. achei meu "guru cake" lol lol lol Abraços.. muito grato.. Compartilhar este post Link para o post Compartilhar em outros sites