El framework Cakephp

21
CAKE PHP Framework per a un desenvolupament àgil. Josep Llodrà Grimalt (http://herotyc.com) ([email protected])

description

A presentation on CakePHP, a few explanation about how it works and an example, written in Catalan.Una presentació sobre CakePHP, breu explicació sobre les funcionalitats i un petit exemple, en català.Per Josep Llodrà Grimalt.http://herotyc.com

Transcript of El framework Cakephp

Page 1: El framework Cakephp

CAKE PHPFramework per a un desenvolupament àgil.

Josep Llodrà Grimalt (http://herotyc.com) ([email protected])

Page 2: El framework Cakephp

¿Què és un Framework?

És una estructura de suport, en la que un altre projecte de software es pot organitzar i desenvolupar.

Estructura de directoris. Classes, llibreries, auxiliars. Facilita el desenvolupament. Codi reutilitzable.

Page 3: El framework Cakephp

Motius per a utilitzar-lo

Agilitat en el desenvolupament. Aplicacions més estables. Organització del codi font. Facilita el treball en equip. S’enfoca cap a la lògica de negoci i no en

tasques senzilles i repetitives. Model CRUD – Create, Retrieve, Update,

Delete.

Page 4: El framework Cakephp

Model MVC

MVC: Model, View, Controller.

És un patró d’arquitectura de software que separa les dades d’una aplicació, la interfície d’usuari i la lògica de control en 3 components.

Page 5: El framework Cakephp

Model MVC

Page 6: El framework Cakephp

Model MVC

Model: És la representació específica de la informació. Assegura la integritat de les dades, per exemple, validant-les abans d’inserir-les.

Vista: Presenta el model en el format adequat, vendria a ser la GUI.

Controlador: Respon a events, usualment accions de l’usuari que provoquen canvis al model i probablement a la vista.

Page 7: El framework Cakephp

¿Què és CakePHP?

Framework PHP Compatible amb PHP 4 i PHP 5 Arquitectura MVC ORM – Mapejat d’objecte relacional Actualment a la versió:

1.1.20.7692 (estable). 1.2.0.7692 RC3 (en desenvolupament).

Pàgina web: Cakephp.org

Page 8: El framework Cakephp

¿Què té una aplicació CakePHP?

Alguns models. Moltes vistes. Pocs controladors. Un poquet d’ActiveRecord (per estalviar-se

escriure sentències en SQL).

Page 9: El framework Cakephp

Estructura de directoris

/ (arrel) app/

Config/ Controllers/ Models/ Plugins/ Tmp/ Vendors/ Views/ Webroot/

Cake Docs Vendors

Page 10: El framework Cakephp

Instal·lació

Descarregar-lo des de http://cakephp.org Utilitzarem la darrera versió estable (1.1.x) Utilitzarem un servidor (XAMPlite 1.6.7)

Descomprimir Cakephp dins C:\xampplite\htdocs, llavors tendrem el directori nou “cake_1.1.xxx”, el podem canviar a, simplement, “cake” (o el nom de la nostra aplicació).

Page 11: El framework Cakephp

Prova

Accedir a: http://localhost/cake/

Page 12: El framework Cakephp

Configuració de la BBDD

Al directori C:\xampplite\htdocs\cake\app\config Renombrar “database.php.default” a

database.php i editar-lo.

Page 13: El framework Cakephp

Provem la connexió de nou

Funciona

Page 14: El framework Cakephp

Crear les taules

Com a exemple farem una aplicació tipus Agenda, amb entrades de feines per fer i tipus de tasques. Una feina tindrà un nom, una prioritat, un comentari, i un tipus de feina.

Page 15: El framework Cakephp

Restriccions de Cake

Els noms de les taules han d’estar en anglès i en plural (no necessari però recomanable).

Hi ha d’haver un identificador primari (id). Les claus estrangeres han de ser de la forma

(nomdelataula_id).

Page 16: El framework Cakephp

Taules

Types:

Jobs:

Page 17: El framework Cakephp

Creació de codi automàtic: Bake.php

En la ruta: C:\xamplite\htdocs\cake\cake\scripts> executem c:\xamplite\php\php.exe bake.php

Creem els models, vistes i controladors.

Etc.

Page 18: El framework Cakephp

Relacions entre Models

-hasMany: Relació 1-N, per a la taula que no tingui la clau estrangera.

-hasOne: Relacions 1-1, la taula ha de tenir la clau estrangera apuntant a l’altra.

-belongsTo: Relació 1-N, per a la taula que té la clau extrangera (com és el cas d’adalt).

-hasManyAndBelongsTo: Relacions N-N, té unes limitacions i ha de seguir unes convencions. Veure aquí.

Page 19: El framework Cakephp

Models Job i Type

Fem el mateix per amb els Controladors i les Vistes...

Page 20: El framework Cakephp

Codi creat

Els Models estaran dins el directori \Models En anglès, singular: Job.php, Type.php

Els Controladors dins \Controllers Jobs_controller.php, Types_controller.php

Les Vistes dins \Views \Views\Jobs\index.thtml, add.thtml, edit.thtml,

view.thtml

Page 21: El framework Cakephp

API

http://api.cakephp.org/1.1/ (estable) AppController AppModel HtmlHelper FormHelper AjaxHelper