Iniciación Con CakePHP

3,854 views

Published on

La presentación de Víctor san Martín en el Cakefest Conference Chile, realizado el 19 de Diciembre del 2008.

http://www.victorsanmartin.com

Published in: Technology

Iniciación Con CakePHP

  1. 1. Iniciación con CakePHP Víctor San Martín victor.sanmartin@eclass.cl www.victorsanmartin.com
  2. 2. ¿Por qué utilizar un Framework? • Agilizas el desarrollo • Aplicaciones mas estables • Facilita el trabajo en equipo • Te enfocas en la capa de negocio, no en tareas sencillas y repetitivas • No reinventas la rueda
  3. 3. ¿Por qué CakePHP? • Arquitectura MVC • Flexible y Extensible (escalable) • Mejores prácticas • Convención sobre la Configuración • Desarrolla de una manera más ágil y rápida • Programación OO • Documentación por todas partes • Comunidad activa
  4. 4. MVC MVC: Modelo, Vista, Controlador Es un patron de diseño de software que separa la aplicación en 3 partes: las entidades, la interface de usuario y la lógica de control.
  5. 5. MVC ModelModel ViewView ControllerController Los datos de la aplicación La presentación de la información Procesa los eventos de la aplicación
  6. 6. Entendiendo MVC ModelModel ViewView ControllerController BrowserBrowser MySQL, Oracle, Postgres, … • El navegador genera una petición. http://localhost/posts/ • El controlador procesa la acción. •El controlador accede a la lógica del negocio (modelo). •El modelo accede a la base de datos para ejecutar la acción enviada desde el controlador. •El controlador carga la vista relacionada a la acción. •El controlador renderiza la vista obtenida, incluyendo los datos obtenidos desde el modelo. •El controlador devuelve una respuesta al navegador.
  7. 7. MVC en CakePHP Fuente: http://betterexplained.com/
  8. 8. Mas características • Compatible con PHP4 y PHP5 • CRUD integrado (Create, Read, Update, Delete) • Scaffolding • Internacionalización • Helpers (Html, Form, Ajax, Session, etc) • Components (Session, Email, Security, etc) • Licencia MIT • Y mucho más …
  9. 9. Desarrollando con CakePHP
  10. 10. Requerimientos • Servidor HTTP (Apache 2) • PHP4 o PHP5 • Base de datos (opcional) • Mysql, PostgreSQL, Firebird DB2, Microsoft SQL Server, Oracle, SQLite, ODBC o ADOdb.
  11. 11. Estructura /www/ app/ config/ controllers/ locale/ models/ plugins/ tests/ tmp/ vendors/ views/ webroot/ cake/ docs/ vendors/ index.php .htaccess Version: 1.2.0.7692-rc3
  12. 12. Primera impresión Version: 1.2.0.7692-rc3
  13. 13. Aplicación básica: Blog Paso 1: Análisis El blog debe contar con las siguientes acciones: • Listar • Crear • Editar • Eliminar
  14. 14. Aplicación básica: Blog Paso 2: Base de Datos CREATE TABLE `posts` ( `id` INT(6) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `created` DATETIME NOT NULL, `modified` DATETIME NOT NULL, `title` VARCHAR(200) NOT NULL, `content` TEXT NOT NULL ) ENGINE = myisam;
  15. 15. Aplicación básica: Blog Paso 3: Conectándose /app/config/database.php.default /app/config/database.php
  16. 16. Aplicación básica: Blog Paso 4: El Modelo /app/models/post.php
  17. 17. Aplicación básica: Blog Paso 5: El Controlador /app/ controllers /posts_controler.php
  18. 18. Aplicación básica: Blog CRUD completo http://localhost/posts/ http://localhost/posts/delete/1/ http://localhost/posts/new/ http://localhost/posts/edit/1/
  19. 19. Aplicación básica: Blog Primera impresión Que rápido no? En tan solo 5 pasos creamos un contenedor!!! Desarrollo ágil, rápido y simple.
  20. 20. Aplicación básica: Blog Notas: Convenciones Modelo: La tabla se escribe “siempre en plural” y el “modelo en singular” posts -> post.php Controlador: “Siempre en plural”, y se agrega “controller” al archivo y nombre de la clase class PostsController -> post_controller.php
  21. 21. Aplicación básica: Blog Notas: Convenciones Las clases se escriben en formato CamelCased, mientras que los archivos llevan underscore “_”. UsuariosController -> usuarios_controller.php CallePrincipal.php -> calle_principal.php Excepción: Helpers y Componentes HtmlHelper -> html.php SessionComponent -> session.php
  22. 22. Aplicación básica: Blog Bonus: Validación /app/models/post.php
  23. 23. Aplicación básica: Blog Bonus: Validación
  24. 24. Aplicación básica: Blog Bonus: Validación /app/models/post.php
  25. 25. Aplicación básica: Blog Bonus: Vistas Personalizadas /app/views/posts/index.ctp
  26. 26. Aplicación básica: Blog Bonus: Vistas Personalizadas /app/controllers/posts_controller.php
  27. 27. Aplicación básica: Blog Bonus: Vistas Personalizadas
  28. 28. Aplicación básica: Blog Bonus: Vistas Personalizadas
  29. 29. Aplicación básica: Blog Bonus: Vistas Personalizadas
  30. 30. Aplicación básica: Blog Bonus: Vistas Personalizadas
  31. 31. Aplicación básica: Blog Bonus: Vistas Personalizadas
  32. 32. Más Información Sitio Web http://www.cakephp.org The bakery http://bakery.cakephp.org Book http://book.cakephp.org API http://api.cakephp.org Google Grupos http://groups.google.com/group/cake-php/ http://groups.google.com/group/cakephp-esp http://groups.google.com/group/cakephp-chile Más? San Google… http://www.google.cl/search?q=cakephp (+4.000.000 de resultados)
  33. 33. Fin Víctor San Martín http://www.victorsanmartin.com Gtalk, MSN, Correo questchile@gmail.com Corp victor.sanmartin@eclass.cl Twitter @questchile Skype victor.sm Consultas

×