O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes Altere suas preferências de anúncios quando desejar.

Apresentacao codeigniter

3.941 visualizações

Publicada em

Apresentação feita em dupla com @franciscosouza para o II Workshop PHP

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Apresentacao codeigniter

  1. 1. CodeIgniter Turbinando a produtividade com MVC Francisco Souza @franciscosouza André Tagliati @tagliati
  2. 2. Hora de acordar http://www.flickr.com/photos/dominiqs/137546402/
  3. 3. quem?
  4. 4. Francisco Souza @franciscosouza
  5. 5. Francisco Souza @franciscosouza Pior que tá, não fica.
  6. 6. Francisco Souza @franciscosouza Pior que tá, não fica. Frase errada, Tiririca!
  7. 7. Francisco Souza @franciscosouza Ah, foi mal! Xikin não, mamãe!
  8. 8. André Tagliati @tagliati
  9. 9. André Tagliati @tagliati Foto de mendigo!
  10. 10. Configuração
  11. 11. Boa notícia
  12. 12. www.codeigniter.com $db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = "root"; $db['default']['database'] = "dados"; $db['default']['dbdriver'] = "mysql"; $config['base_url'] = "http://localhost/";
  13. 14. #comofas
  14. 15. MVC
  15. 16. Modelo
  16. 18. extends Model {
  17. 19. extends Model { class Pessoa extends Model { function Pessoa() { parent::Model(); } }
  18. 20. Active Record
  19. 21. function loadAll(){
  20. 22. function loadAll(){ $query = $this -> db -> get( 'pessoas' ); return $query -> result() ;
  21. 23. Então no controller $this -> load -> model( 'Pessoa' ); $this -> Pessoa -> loadAll();
  22. 24. Legal mas... Pode melhorar?
  23. 25. Mas é claro!!!
  24. 27. Controle
  25. 32. extends Controller {
  26. 33. extends Controller { class Pessoas extends Controller { // Actions aqui }
  27. 34. extends Controller { class Pessoas extends Controller { // Actions aqui } WHAT?!
  28. 35. public function index
  29. 36. Convention over Configuration
  30. 37. meusite.com.br/
  31. 38. meusite.com.br/ controller /
  32. 39. meusite.com.br/ controller / action /
  33. 40. meusite.com.br/ controller / action / parâmetros
  34. 41. Visão
  35. 44. $this -> load -> view( 'hello' );
  36. 45. $this -> load -> view( 'hello' );
  37. 46. OK.... ...entendi
  38. 47. OK.... ...entendi Mas e os
  39. 48. É sussa!
  40. 49. É sussa! $data[“hello”] = “Oi..”; $this->load->view('hello',$data);
  41. 50. É sussa! $data[“hello”] = “Oi..”; $this->load->view('hello',$data); … dai no html
  42. 51. É sussa! $data[“hello”] = “Oi..”; $this->load->view('hello',$data); … dai no html... <html> <body> <?php echo $hello;?> </body> </html>
  43. 52. … e ainda... $data[“hello”] = “Oi..”; $this->load->view('topo'); $this->load->view('hello',$data); $this->load->view('rodape');
  44. 53. … e ainda... $data[“hello”] = “Oi..”; $this->load->view('topo'); $this->load->view('hello',$data); $this->load->view('rodape'); … ou... $this->load->view('hello','', true );
  45. 54. … e ainda... $data[“hello”] = “Oi..”; $this->load->view('topo'); $this->load->view('hello',$data); $this->load->view('rodape'); … ou... $this->load->view('hello','', true );
  46. 55. Bônus
  47. 56. Bônus Raduuuuuuqui
  48. 57. Formulários
  49. 58. $erros = array(); if (!$_POST['nome']) { $erros[] = 'O campo Nome é requerido.'; } if (!$_POST['email']) { $erros[] = 'O campo E-mail é requerido.'; } else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $erros[] = 'O campo E-mail não é um e-mail válido'; } if (!$POST['mensagem']) { $erros[] = 'O campo Mensagem é requerido.'; } if (!empty($erros)) { $this->load->view('formulario.php', array('erros' => $erros)); }
  50. 59. $erros = array(); if (!$_POST['nome']) { $erros[] = 'O campo Nome é requerido.'; } if (!$_POST['email']) { $erros[] = 'O campo E-mail é requerido.'; } else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $erros[] = 'O campo E-mail não é um e-mail válido'; } if (!$POST['mensagem']) { $erros[] = 'O campo Mensagem é requerido.'; } if (!empty($erros)) { $this->load->view('formulario.php', array('erros' => $erros)); } <ul> <?php foreach ($erros as $erro): ?> <li><?php echo $erro; ?></li> <?php endforeach; ?> </ul>
  51. 60. Receber torpedo?
  52. 61. $this->load->library('form_validation');
  53. 62. $this->load->library('form_validation'); $this->form_validation->set_rules('nome', 'Nome', 'required'); $this->form_validation->set_rules('email', 'E-mail', 'required|valid_email'); $this->form_validation->set_rules('mensagem', 'Mensagem', 'required');
  54. 63. $this->load->library('form_validation'); $this->form_validation->set_rules('nome', 'Nome', 'required'); $this->form_validation->set_rules('email', 'E-mail', 'required|valid_email'); $this->form_validation->set_rules('mensagem', 'Mensagem', 'required'); $this->form_validation->run();
  55. 64. $this->load->library('form_validation'); $this->form_validation->set_rules('nome', 'Nome', 'required'); $this->form_validation->set_rules('email', 'E-mail', 'required|valid_email'); $this->form_validation->set_rules('mensagem', 'Mensagem', 'required'); $this->form_validation->run(); <?php echo validation_errors(); ?>
  56. 66. Messaging http://www.flickr.com/photos/funtik/1175522045/
  57. 67. WHAT?!
  58. 68. $this->load->library('session'); $this->session->set_flashdata( 'notice', 'Contato enviado com sucesso!' ); WHAT?!
  59. 69. É só isso?
  60. 70. - Carrinho de compras; - Envio de e-mail; - Criptografia; - Upload de arquivos; - Manipulação de imagens; - Input (tratando dados de formulários, segurança++); - Paginação; - Sessão; - Template parser; - URI; - XML-RPC; - ... codeigniter.com É só isso?
  61. 71. - Carrinho de compras; - Envio de e-mail; - Criptografia; - Upload de arquivos; - Manipulação de imagens; - Input (tratando dados de formulários, segurança++); - Paginação; - Sessão; - Template parser; - URI; - XML-RPC; - ... codeigniter.com É só isso? Doidera mano!
  62. 72. Helpers
  63. 73. <ul><li>Array Helper;
  64. 74. Cookie Helper;
  65. 75. Date Helper;
  66. 76. Download Helper;
  67. 77. E-mail Helper;
  68. 78. Smiley Helper;
  69. 79. URL Helper;
  70. 80. ... </li></ul>
  71. 81. <ul><li>Array Helper;
  72. 82. Cookie Helper;
  73. 83. Date Helper;
  74. 84. Download Helper;
  75. 85. E-mail Helper;
  76. 86. Smiley Helper;
  77. 87. URL Helper;
  78. 88. ... </li></ul>:D :) ;)
  79. 89. http://www.flickr.com/photos/tambako/999112257/ Onde ir agora?
  80. 90. http://www.flickr.com/photos/tambako/999112257/ Onde ir agora? www.codeigniter.com
  81. 91. http://www.flickr.com/photos/tambako/999112257/ Onde ir agora? www.codeigniter.com.br www.codeigniter.com
  82. 92. http://www.flickr.com/photos/tambako/999112257/ Onde ir agora? www.codeigniter.com.br www.codeigniter.com getcloudigniter.com
  83. 94. André Tagliati @tagliati [email_address] www.tagliati.com.br Francisco Souza @franciscosouza [email_address] www.franciscosouza.com.br http://www.flickr.com/photos/oberazzi/318947873/

×