CAKE PHP Framework per a un desenvolupament àgil. Josep Llodrà Grimalt  ( http://herotyc.com ) (jlg.hrtc@gmail.com)
¿ 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

El framework Cakephp

  • 1.
    CAKE PHP Frameworkper a un desenvolupament àgil. Josep Llodrà Grimalt ( http://herotyc.com ) (jlg.hrtc@gmail.com)
  • 2.
    ¿ 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.
  • 3.
    Motius per autilitzar-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.
  • 4.
    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.
  • 5.
  • 6.
    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.
  • 7.
    ¿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
  • 8.
    ¿Què té unaaplicació CakePHP? Alguns models. Moltes vistes. Pocs controladors. Un poquet d’ActiveRecord (per estalviar-se escriure sentències en SQL).
  • 9.
    Estructura de directoris/ (arrel) app/ Config/ Controllers / Models / Plugins/ Tmp/ Vendors/ Views / Webroot/ Cake Docs Vendors
  • 10.
    Instal·lació Descarregar-lo desde 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ó).
  • 11.
    Prova Accedir a:http://localhost/cake/
  • 12.
    Configuració de laBBDD Al directori C:\xampplite\htdocs\cake\app\config Renombrar “database.php.default” a database.php i editar-lo.
  • 13.
    Provem la connexióde nou Funciona
  • 14.
    Crear les taulesCom 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 .
  • 15.
    Restriccions de CakeEls 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).
  • 16.
  • 17.
    Creació de codiautomà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.
  • 18.
    Relacions entre ModelshasMany : 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í .
  • 19.
    Models Job iType Fem el mateix per amb els Controladors i les Vistes...
  • 20.
    Codi creat ElsModels 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
  • 21.
    API http://api.cakephp.org/1.1/ (estable) AppController AppModel HtmlHelper FormHelper AjaxHelper