Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Apresentacao codeigniter

3,958 views

Published on

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

Published in: Technology
  • Be the first to comment

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/

×