Iniciación Con CakePHP
-
Upload
victor-san-martin -
Category
Technology
-
view
3.531 -
download
1
description
Transcript of Iniciación Con CakePHP
![Page 2: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/2.jpg)
![Page 3: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/3.jpg)
¿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
![Page 4: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/4.jpg)
¿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
![Page 5: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/5.jpg)
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.
![Page 6: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/6.jpg)
MVC
Model Model
View View
Controller Controller
Los datos de la aplicación
La presentación de la información
Procesa los eventos de la aplicación
![Page 7: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/7.jpg)
Entendiendo MVC
Model Model View View
Controller Controller
Browser Browser
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.
![Page 8: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/8.jpg)
MVC en CakePHP
Fuente: http://betterexplained.com/
![Page 9: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/9.jpg)
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 …
![Page 10: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/10.jpg)
Desarrollando con CakePHP
![Page 11: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/11.jpg)
Requerimientos
• Servidor HTTP (Apache 2)
• PHP4 o PHP5
• Base de datos (opcional)• Mysql, PostgreSQL, Firebird DB2, Microsoft SQL
Server, Oracle, SQLite, ODBC o ADOdb.
![Page 12: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/12.jpg)
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
![Page 13: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/13.jpg)
Primera impresión
Version: 1.2.0.7692-rc3
![Page 14: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/14.jpg)
Aplicación básica: Blog
Paso 1: AnálisisEl blog debe contar con las siguientes acciones:
• Listar• Crear• Editar• Eliminar
![Page 15: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/15.jpg)
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;
![Page 16: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/16.jpg)
Aplicación básica: Blog
Paso 3: Conectándose
/app/config/database.php.default
/app/config/database.php
![Page 17: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/17.jpg)
Aplicación básica: Blog
Paso 4: El Modelo
/app/models/post.php
![Page 18: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/18.jpg)
Aplicación básica: Blog
Paso 5: El Controlador
/app/ controllers /posts_controler.php
![Page 19: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/19.jpg)
Aplicación básica: Blog
CRUD completohttp://localhost/posts/ http://localhost/posts/delete/1/
http://localhost/posts/new/ http://localhost/posts/edit/1/
![Page 20: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/20.jpg)
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.
![Page 21: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/21.jpg)
Aplicación básica: Blog
Notas: ConvencionesModelo: 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 claseclass PostsController -> post_controller.php
![Page 22: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/22.jpg)
Aplicación básica: Blog
Notas: ConvencionesLas 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 ComponentesHtmlHelper -> html.php
SessionComponent -> session.php
![Page 23: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/23.jpg)
Aplicación básica: Blog
Bonus: Validación/app/models/post.php
![Page 24: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/24.jpg)
Aplicación básica: Blog
Bonus: Validación
![Page 25: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/25.jpg)
Aplicación básica: Blog
Bonus: Validación/app/models/post.php
![Page 26: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/26.jpg)
Aplicación básica: Blog
Bonus: Vistas Personalizadas/app/views/posts/index.ctp
![Page 27: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/27.jpg)
Aplicación básica: Blog
Bonus: Vistas Personalizadas
/app/controllers/posts_controller.php
![Page 28: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/28.jpg)
Aplicación básica: Blog
Bonus: Vistas Personalizadas
![Page 29: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/29.jpg)
Aplicación básica: Blog
Bonus: Vistas Personalizadas
![Page 30: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/30.jpg)
Aplicación básica: Blog
Bonus: Vistas Personalizadas
![Page 31: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/31.jpg)
Aplicación básica: Blog
Bonus: Vistas Personalizadas
![Page 32: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/32.jpg)
Aplicación básica: Blog
Bonus: Vistas Personalizadas
![Page 33: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/33.jpg)
Más InformaciónSitio Web
http://www.cakephp.org
The bakeryhttp://bakery.cakephp.org
Bookhttp://book.cakephp.org
APIhttp://api.cakephp.org
Google Gruposhttp://groups.google.com/group/cake-php/http://groups.google.com/group/cakephp-esphttp://groups.google.com/group/cakephp-chile
Más? San Google…http://www.google.cl/search?q=cakephp (+4.000.000 de resultados)
![Page 34: Iniciación Con CakePHP](https://reader035.fdocuments.net/reader035/viewer/2022081513/5561551dd8b42a780d8b520a/html5/thumbnails/34.jpg)
Fin
Víctor San Martínhttp://www.victorsanmartin.com
Gtalk, MSN, [email protected]
Twitter@questchile
Skypevictor.sm
Consultas