Joaquim Rendeiro » BarCamp » Set. 2007
CodeIgniter – Framework MVC em PHP Web Controlador Vista Modelo Base de Dados » Set. 2007 BarCamp Portugal
CodeIgniter – Controladores <ul><li>Classe que é o ponto de entrada na aplicação </li></ul><ul><li>Métodos correspondem a ...
CodeIgniter – Modelos <ul><li>Interação simples por SQL </li></ul><ul><li>$this->db->query(‘select ...’); </li></ul><ul><l...
CodeIgniter – Scaffolding <ul><li>Baseado numa palavra-chave do URL </li></ul><ul><li>www.website.com/videos/palavra_scaff...
CodeIgniter – Vistas <ul><li>Sintaxe própria para templates (tipo Smarty) </li></ul><ul><li>Não é obrigatório, pode usar-s...
CodeIgniter – Extensibilidade <ul><li>Hooks: Em resposta a certos eventos, podem ser executadas funções da aplicação </li>...
CodeIgniter – Visão Geral <ul><li>Models </li></ul><ul><li>Views </li></ul><ul><li>Controllers </li></ul><ul><li>Libraries...
OncologiaPediátrica.org <ul><li>Objectivos: </li></ul><ul><li>Apoiar os pais e familiares de crianças que sofrem de Cancro...
OncPed.org – Características do Site <ul><li>Cinco grandes áreas distintas </li></ul><ul><li>A principal tabela tem uma re...
OncPed.org – Limites do CodeIgniter <ul><li>“ ActiveRecord” </li></ul><ul><li>É uma versão muito simplificada </li></ul><u...
OncPed.org – Soluções <ul><li>SuperModel </li></ul><ul><li>Aparentemente similar ao scaffolding do CodeIgniter para criar ...
OncPed.org – Soluções <ul><li>class Artigo extends SuperModel { </li></ul><ul><li>var $primary = 'id'; </li></ul><ul><li>....
OncPed.org – Soluções++ <ul><li>Com base no código do SuperModel... </li></ul><ul><ul><li>Em vez de gerar os formulários o...
OncPed.org – Soluções++ <ul><li>Class Artigos extends Controller { </li></ul><ul><li>function update() { </li></ul><ul><li...
OncologiaPediátrica.org <ul><li>Desde Abril, média de 106 visitantes diários, ou 3235 visitantes mensais </li></ul><ul><li...
» Obrigado Joaquim Rendeiro » BarCamp » Set. 2007
Upcoming SlideShare
Loading in …5
×

BarCamp 2007 - CodeIgniter e OncologiaPediátrica.org

1,873 views
1,802 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,873
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
38
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • BarCamp 2007 - CodeIgniter e OncologiaPediátrica.org

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

    ×