• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
BarCamp 2007 - CodeIgniter e OncologiaPediátrica.org
 

BarCamp 2007 - CodeIgniter e OncologiaPediátrica.org

on

  • 2,660 views

 

Statistics

Views

Total Views
2,660
Views on SlideShare
2,655
Embed Views
5

Actions

Likes
2
Downloads
37
Comments
0

1 Embed 5

http://www.slideshare.net 5

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

BarCamp 2007 - CodeIgniter e OncologiaPediátrica.org BarCamp 2007 - CodeIgniter e OncologiaPediátrica.org Presentation Transcript

  • Joaquim Rendeiro » BarCamp » Set. 2007
  • CodeIgniter – Framework MVC em PHP Web Controlador Vista Modelo Base de Dados » Set. 2007 BarCamp 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 BarCamp 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 BarCamp Portugal
  • CodeIgniter – Scaffolding
    • Baseado numa palavra-chave do URL
    • www.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 BarCamp 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 BarCamp 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 BarCamp Portugal
  • CodeIgniter – Visão Geral
    • Models
    • Views
    • Controllers
    • Libraries & Plugins
    • Helpers
    • ...
    - - ++ ++ ++ ++ » Set. 2007 BarCamp 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 BarCamp 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 BarCamp 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 BarCamp 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 BarCamp 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 BarCamp 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 BarCamp 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 BarCamp Portugal
  • OncologiaPediátrica.org
    • Desde Abril, média de 106 visitantes diários, ou 3235 visitantes mensais
    • 101 testemunhos e 41 comentários recebidos no site
    • 62 contactos directos, com pedidos de informação, aconselhamento, voluntariado, ...
    » Set. 2007 BarCamp Portugal
  • » Obrigado Joaquim Rendeiro » BarCamp » Set. 2007