34
Iniciación con CakePHP Víctor San Martín [email protected] www.victorsanmartin.com

Iniciación Con CakePHP

Embed Size (px)

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.com

Citation preview

Page 1: Iniciación Con CakePHP

Iniciación con CakePHP

Víctor San Martí[email protected]

Page 2: Iniciación Con CakePHP
Page 3: Iniciación Con CakePHP

¿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

¿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

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

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

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

MVC en CakePHP

Fuente: http://betterexplained.com/

Page 9: Iniciación Con CakePHP

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

Desarrollando con CakePHP

Page 11: Iniciación 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.

Page 12: Iniciación Con CakePHP

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

Primera impresión

Version: 1.2.0.7692-rc3

Page 14: Iniciación Con CakePHP

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

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

Aplicación básica: Blog

Paso 3: Conectándose

/app/config/database.php.default

/app/config/database.php

Page 17: Iniciación Con CakePHP

Aplicación básica: Blog

Paso 4: El Modelo

/app/models/post.php

Page 18: Iniciación Con CakePHP

Aplicación básica: Blog

Paso 5: El Controlador

/app/ controllers /posts_controler.php

Page 19: Iniciación Con CakePHP

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

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

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

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

Aplicación básica: Blog

Bonus: Validación/app/models/post.php

Page 24: Iniciación Con CakePHP

Aplicación básica: Blog

Bonus: Validación

Page 25: Iniciación Con CakePHP

Aplicación básica: Blog

Bonus: Validación/app/models/post.php

Page 26: Iniciación Con CakePHP

Aplicación básica: Blog

Bonus: Vistas Personalizadas/app/views/posts/index.ctp

Page 27: Iniciación Con CakePHP

Aplicación básica: Blog

Bonus: Vistas Personalizadas

/app/controllers/posts_controller.php

Page 28: Iniciación Con CakePHP

Aplicación básica: Blog

Bonus: Vistas Personalizadas

Page 29: Iniciación Con CakePHP

Aplicación básica: Blog

Bonus: Vistas Personalizadas

Page 30: Iniciación Con CakePHP

Aplicación básica: Blog

Bonus: Vistas Personalizadas

Page 31: Iniciación Con CakePHP

Aplicación básica: Blog

Bonus: Vistas Personalizadas

Page 32: Iniciación Con CakePHP

Aplicación básica: Blog

Bonus: Vistas Personalizadas

Page 33: Iniciación Con CakePHP

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

Fin

Víctor San Martínhttp://www.victorsanmartin.com

Gtalk, MSN, [email protected]

[email protected]

Twitter@questchile

Skypevictor.sm

Consultas