View
1.718
Download
2
Category
Preview:
Citation preview
Joaquim Rendeiro » BarCamp » Set. 2007
CodeIgniter – Framework MVC em PHP
Web
Controlador Vista
ModeloBase deDados
» Set. 2007 2BarCamp Portugal
CodeIgniter – Controladores
Classe que é o ponto de entrada na aplicação Métodos correspondem a acções, argumentos
são mapeados aos segmentos do URL
class Gallery extends Controller {
function recent($page = 1) {
$this->output->cache(5);
// ... }
}
» Set. 2007 3BarCamp Portugal
CodeIgniter – Modelos
Interação simples por SQL$this->db->query(‘select ...’);
“Diz que é uma espécie de” ActiveRecord$this->db->where(‘...’, ‘...’)->orderby(‘...’);
$this->db->get(‘tabela’);
» Set. 2007 4BarCamp Portugal
CodeIgniter – Scaffolding
Baseado numa palavra-chave do URLwww.website.com/videos/palavra_scaffold
É apenas activado no controlador para determinada tabela
$this->load->scaffolding(‘videos’);
Não gera formulários nem controladores!
» Set. 2007 5BarCamp Portugal
CodeIgniter – Vistas
Sintaxe própria para templates (tipo Smarty) Não é obrigatório, pode usar-se PHP simples
É possível “hackar” o código de modo a mostrar uma vista com o mesmo nome da acção actual (uma linha de código)...
... mas já não é necessário: Pontos de Extensão
» Set. 2007 6BarCamp Portugal
CodeIgniter – Extensibilidade
Hooks: Em resposta a certos eventos, podem ser executadas funções da aplicação
Exemplo: Autenticação de utilizadores Hook em “Post Controller Constructor”: inicializar
sessão; caso o utilizador não esteja autenticado, redireccionar para página de login;
Hook em “Post Controller”: salvar a sessão.
» Set. 2007 7BarCamp Portugal
CodeIgniter – Visão Geral
Models Views Controllers Libraries & Plugins Helpers ...
- -++++++++
» Set. 2007 8BarCamp Portugal
OncologiaPediátrica.org
Objectivos: Apoiar os pais e familiares de crianças que
sofrem de Cancro Criar uma fonte de informação em Português
credível na área Possibilitar o contacto e aproximação de pessoas
que são afectadas pelo mesmo problema
» Efeito Comunidade» Set. 2007 9BarCamp Portugal
OncPed.org – Características do Site
Cinco grandes áreas distintas A principal tabela tem uma relação
1-* com ela própria
Um developer Pouco tempo
» Procura de solução abrangente» Set. 2007 10BarCamp Portugal
OncPed.org – Limites do CodeIgniter
“ActiveRecord” É uma versão muito simplificada Não abstrai eficazmente a base de dados Não disponibiliza associações entre modelos
Scaffolding É apenas temporário, não gera vistas ou
controladores
» Set. 2007 11BarCamp Portugal
OncPed.org – Soluções
SuperModel Aparentemente similar ao scaffolding do
CodeIgniter para criar e editar, mas... Permite especificar o conjunto de campos que
serão visíveis no formulário Permite atribuir regras de validação e valores por
omissão aos campos do modelo
» Set. 2007 12BarCamp Portugal
OncPed.org – Soluções
class Artigo extends SuperModel { var $primary = 'id'; ... var $fields = array( 'titulo' => array( 'label' => 'Título', 'type' => 'text', 'rules' => 'required|max_length[255]', 'class' => 'text_field'), ... );}
» Set. 2007 13BarCamp Portugal
OncPed.org – Soluções++
Com base no código do SuperModel... Em vez de gerar os formulários on-demand, criar os
ficheiros correspondentes Completar com vistas de listar e apagar Adicionar a geração do ficheiro do controlador
Tempo que levou a produzir: aprox. uma semana Benefício ao longo do desenvolvimento:
» Priceless
» Set. 2007 14BarCamp Portugal
OncPed.org – Soluções++
Class Artigos extends Controller {
function update() {
if($this->artigo->run()) { // validation
if($this->artigo->update()) { // database
...
} else { ... }
} else { ... }
}
}
» Set. 2007 15BarCamp Portugal
OncologiaPediátrica.org
Desde Abril, média de 106 visitantesdiários, ou 3235 visitantes mensais
101 testemunhos e 41 comentáriosrecebidos no site
62 contactos directos, compedidos de informação,aconselhamento, voluntariado, ...
» Set. 2007 16BarCamp Portugal
» Obrigado
Joaquim Rendeiro » BarCamp » Set. 2007
Recommended