lucaswxp 22 Denunciar post Postado Dezembro 11, 2009 Este é o próximo tutorial da "série": Iniciando no CakePHP. Neste, falaremos mais sobre o controller, veremos algumas coisas básicas e também veremos algo bem legal chamado "Scaffold" Pré-requisitos * Ter o módulo mod_rewrite habilitado * Um conhecimento razoável sobre Orientação a Objeto * Lido a parte 2 Conteúdo Começando Vamos começar criando um controller básico: app/controllers/noticias_controller.php <?php class NoticiasController extends AppController { var $name = 'Noticias'; } ?> Criamos a classe NoticiasController. Os controllers devem sempre ter o nome de seu model (no caso é Noticia) no plural, com o sufixo "Controller" e sempre estender a classe AppController, para assim, herdar alguns métodos e propriedades legais =P Logo após, vem a propriedade $name, já falamos sobre ela no post sobre models, ela funciona similarmente como no model, a diferença é que você não precisa por o sufixo "Controller". Ok! Nosso controller ainda não tem nada, portanto vamos colocar um método nele chamado index e outro chamado teste. <?php class NoticiasController extends AppController { var $name = 'Noticias'; function index(){ echo 'Logica para a "página" index do site :)'; } function teste(){ echo 'Logica para a "página" teste do site'; } } ?> Métodos de controller são chamados de actions, porém eu continuarei chamando de "método" neste tutorial, para você ter um tempo para assemelhar a idéia, porém fica a nota: No CakePHP, ACTION é o mesmo que MÉTODO Criamos os métodos "index" e "teste", para facilitar o aprendizado pense que os métodos dos controllers são como as "páginas" responsáveis por editar, adicionar, deletar e seja lá o que for do seu site, PORÉM, somente para isso! Quem cuidará da apresentação (HTML, CSS, Javascript etc..) é a view, portanto não saia dando echo dentro do controller a não ser que seja para debugar ou coisa do tipo (como agora) :) Já que os métodos são como "páginas" vamos ver como acessá-los, vamos acessar "teste" primeiro: http://127.0.0.1/blog/noticias/teste Aparecerá um erro, pois ainda não temos a View deste método, porém você ainda verá no topo "Lógica para a "página" teste do site", ótimo! Funcionou como esperávamos. Agora vamos ver como o Cake chegou até o seu método "teste". Em cinza é a pasta do CakePHP, em azul é o nosso controller e em vermelho nosso método. Legal né? E tudo com URL's amigáveis. Portanto, se você não tiver utilizando rotas o comportamento padrão para acessar as URL's será este: http://127.0.0.1/blog/controller/método Aí você me pergunta: E se alguém colocar mais alguma coisa depois do método? E eu respondo a você =P: Vai ser passado como parâmetro para o método! Considere a seguinte URL: http://127.0.0.1/blog/categorias/deletar/5/outro_parametro (...) Isso mapearia para algo como isso: <?php class CategoriasController extends AppController { var $name = 'Categorias'; function deletar($id , $segundo_parametro){ // Faz coisas com $id e $segundo_parametro } } ?> Maneiro.... Agora vamos acessar o método index: http://127.0.0.1/blog/noticias Ué! Mas cadê o método "index" ali no final? Pois é, todo método chamado "index" é considerado como método padrão, portanto o seu uso na URL é opcional =D Usando o Scaffold no CakePHP Vamos ver o seu magnífico Scaffold. Não irei falar o que é o scaffold, deixarei você ver =O Delete ou comente todos os métodos do controller "Noticias", e coloque a propriedade $scaffold, veja como deve ficar: <?php class NoticiasController extends AppController { var $name = 'Noticias'; var $scaffold; } ?> Fazendo isso você tem um sistema CRUD completo.... tem dúvidas? Acesse e veja você mesmo: http://127.0.0.1/blog/noticias Incrível não? Veja, na index tem uma lista de todos os registros adicionados e é possivel pela visualizar, editar, deletar e também adicionar as noticias, clique no link "New Noticia" e adicione algumas para brincar. Aqui vai uma screen de como deverá ficar caso você esteja com preguissa de fazer você mesmo =P Exemplo de scaffold Ele é bem legal, porém só deve ser usado em modo de desenvolvimento, para debug e etc..., pois além de ser mais limitado doque o uso de métodos normais, ele deixa a aplicação pesada, portanto, usem com moderação =D Bom, é isso aí! No próximo veremos mais sobre a View, e depois de ja ter pego toda base, realmente iniciaremos a contrução do nosso bloguizinho, até a próxima pessoal! o/ Fonte: http://lucaspelegrino.com Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Dezembro 20, 2009 Outra boa contribuição Compartilhar este post Link para o post Compartilhar em outros sites
lucaswxp 22 Denunciar post Postado Dezembro 22, 2009 Vlw =) Compartilhar este post Link para o post Compartilhar em outros sites