iniciación con cakephp
DESCRIPTION
La presentación de Víctor san Martín en el Cakefest Conference Chile, realizado el 19 de Diciembre del 2008. http://www.victorsanmartin.comTRANSCRIPT
Iniciación con CakePHP
Víctor San Martí[email protected]
¿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
¿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
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.
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
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.
MVC en CakePHP
Fuente: http://betterexplained.com/
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 …
Desarrollando con CakePHP
Requerimientos
• Servidor HTTP (Apache 2)
• PHP4 o PHP5
• Base de datos (opcional)• Mysql, PostgreSQL, Firebird DB2, Microsoft SQL
Server, Oracle, SQLite, ODBC o ADOdb.
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
Primera impresión
Version: 1.2.0.7692-rc3
Aplicación básica: Blog
Paso 1: AnálisisEl blog debe contar con las siguientes acciones:
• Listar• Crear• Editar• Eliminar
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;
Aplicación básica: Blog
Paso 3: Conectándose
/app/config/database.php.default
/app/config/database.php
Aplicación básica: Blog
Paso 4: El Modelo
/app/models/post.php
Aplicación básica: Blog
Paso 5: El Controlador
/app/ controllers /posts_controler.php
Aplicación básica: Blog
CRUD completohttp://localhost/posts/ http://localhost/posts/delete/1/
http://localhost/posts/new/ http://localhost/posts/edit/1/
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.
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
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
Aplicación básica: Blog
Bonus: Validación/app/models/post.php
Aplicación básica: Blog
Bonus: Validación
Aplicación básica: Blog
Bonus: Validación/app/models/post.php
Aplicación básica: Blog
Bonus: Vistas Personalizadas/app/views/posts/index.ctp
Aplicación básica: Blog
Bonus: Vistas Personalizadas
/app/controllers/posts_controller.php
Aplicación básica: Blog
Bonus: Vistas Personalizadas
Aplicación básica: Blog
Bonus: Vistas Personalizadas
Aplicación básica: Blog
Bonus: Vistas Personalizadas
Aplicación básica: Blog
Bonus: Vistas Personalizadas
Aplicación básica: Blog
Bonus: Vistas Personalizadas
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)
Fin
Víctor San Martínhttp://www.victorsanmartin.com
Gtalk, MSN, [email protected]
Twitter@questchile
Skypevictor.sm
Consultas