el framework cakephp
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.comTRANSCRIPT
CAKE PHPFramework per a un desenvolupament àgil.
Josep Llodrà Grimalt (http://herotyc.com) ([email protected])
¿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.
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.
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.
Model MVC
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.
¿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
¿Què té una aplicació CakePHP?
Alguns models. Moltes vistes. Pocs controladors. Un poquet d’ActiveRecord (per estalviar-se
escriure sentències en SQL).
Estructura de directoris
/ (arrel) app/
Config/ Controllers/ Models/ Plugins/ Tmp/ Vendors/ Views/ Webroot/
Cake Docs Vendors
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ó).
Prova
Accedir a: http://localhost/cake/
Configuració de la BBDD
Al directori C:\xampplite\htdocs\cake\app\config Renombrar “database.php.default” a
database.php i editar-lo.
Provem la connexió de nou
Funciona
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.
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).
Taules
Types:
Jobs:
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.
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í.
Models Job i Type
Fem el mateix per amb els Controladors i les Vistes...
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
API
http://api.cakephp.org/1.1/ (estable) AppController AppModel HtmlHelper FormHelper AjaxHelper