Your SlideShare is downloading. ×
0
Sviluppo web con
        CakePHP
Andrea Chiarottino e Francesco Ronchi
             Linux Day Torino
               24-10-...
Presentazione



Chi siamo...

Chi siete?
Perchè un framework?
 Velocità di sviluppo

 Riutilizzo del codice

 Struttura del codice

 Uso di modelli standard (MVC, ...
CakePHP (1)

Basato su PHP, ereditando idee da
altri linguaggi (vedi Ruby on Rails)

Oggetti: Modello MVC, ORM

Coding by ...
CakePHP (2)

Facile da estendere con componenti,
helper, behaviours e plugin.

Gestione della validazione

Supporto AJAX

...
Modello MVC

MVC = Model, View, Controller

Model: i dati dell’applicazione,
tipicamente il database.

View: la presentazi...
MVC visto da CakePHP
Struttura Cartelle

app/

cake/

vendors/

.htaccess

index.php
Struttura Cartelle:
app/   app/
•   config/

•   controllers/

•   locale/

•   models/

•   plugins/

•   tmp/

•   vendo...
App Extensions

app_model.php, app_controller.php,
app_helpers.php presenti nella
cartella app

Sono le superclassi di mod...
Components

Classi integrate nel FW per svolgere
compiti comuni che possono essere
utilizzate dai controller estendone
le ...
Behaviors


Classi che estendono le funzionalità
dei model

Core behaviors: ACL, Containable,
Translate, Tree
Helpers

Classi che includono logica per il
livello presentazione che possono
essere riutilizzate nelle view

Core helpers...
Common Tasks
Validazione   e sanitization dei dati

Gestione errori e debugging

Caching e Logging

Testing

I18n & L10n

...
Utility libs


Classi con funzioni di utilizzo
generale richiamabili all'interno
dell'applicazione

Core Libs: Inflector, ...
Console Apps


BAKE: script per la generazione di
codice: models, views, controllers

Possibilità di creare template da
ut...
Scaffolding & Bake


Creazione dinamica del CRUD delle
tabelle del database (Scaffolding)

Creazione statica delle classi ...
Ambiente di sviluppo
Eclipse

•   PDT per sviluppare in PHP

•   Subclipse per collegamenti a repository
    SVN

Firefox
...
Let's go code!



Pratica con Cake: esempio
Struttura DB
Code by Convention

Definire una convenzione per fare le
cose, anziché configurarle

Codice più semplice/leggibile, più
le...
Convenzioni per il DB

 Regole principali:

   Nomi delle tabelle al plurale (in
   inglese)

   Chiave primaria campo ‘id...
Convenzioni per model

 Regole principali:

   Nomi delle classi singolari,
   CamelCased: Person, Apple,
   BigPerson

  ...
Convenzioni per
      controller
Regole principali:

  Nomi delle classi plurali,
  CamelCased e terminanti con
  Controll...
Convenzioni per view
Regole principali:

  Le view sono contenute in una
  cartella all'interno di una
  tabella che ha il...
CakePHP URL


...siteurl/controllername/actionname/par1
/par2

Si possono comunque personalizzare gli
URL utilizzando le r...
Risorse
Website: http://www.cakephp.org

Cookbook: http://book.cakephp.org

Bakery: http://bakery.cakephp.org

API: http:/...
Libri

Apress – Beginning CakePHP from Novice
 to Professional (Pag. 341)

Apress - CAKEPHP - Practical CakePHP
 Projects ...
Grazie!!!
Andrea Chiarottino e Francesco Ronchi

           contacts@crop.it
         http://www.crop.it
Upcoming SlideShare
Loading in...5
×

CakePhp Linux Day Torino '09

930

Published on

Slide del talk tenuto al Linux Day 2009 a Torino da Francesco Ronchi e Andrea Chiarottino - CROP - www.crop.it

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
930
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "CakePhp Linux Day Torino '09"

  1. 1. Sviluppo web con CakePHP Andrea Chiarottino e Francesco Ronchi Linux Day Torino 24-10-2009
  2. 2. Presentazione Chi siamo... Chi siete?
  3. 3. Perchè un framework? Velocità di sviluppo Riutilizzo del codice Struttura del codice Uso di modelli standard (MVC, ORM...) Codice di terze parti (community...) Documentazione
  4. 4. CakePHP (1) Basato su PHP, ereditando idee da altri linguaggi (vedi Ruby on Rails) Oggetti: Modello MVC, ORM Coding by convention Scaffolding & Bake Codice semplice e “pulito”
  5. 5. CakePHP (2) Facile da estendere con componenti, helper, behaviours e plugin. Gestione della validazione Supporto AJAX Autenticazione e ACL Integrazione con SimpleTest
  6. 6. Modello MVC MVC = Model, View, Controller Model: i dati dell’applicazione, tipicamente il database. View: la presentazione delle informazioni, tipicamente pagine web Controller: la logica dell’applicazione
  7. 7. MVC visto da CakePHP
  8. 8. Struttura Cartelle app/ cake/ vendors/ .htaccess index.php
  9. 9. Struttura Cartelle: app/ app/ • config/ • controllers/ • locale/ • models/ • plugins/ • tmp/ • vendors/ • views/ • webroot/
  10. 10. App Extensions app_model.php, app_controller.php, app_helpers.php presenti nella cartella app Sono le superclassi di model, view e controller dove trovano posto i metodi comuni a tutte le sottoclassi
  11. 11. Components Classi integrate nel FW per svolgere compiti comuni che possono essere utilizzate dai controller estendone le funzionalità Core Components: ACL, Auth, Cookie, Email, RequestHandler, Security, Session
  12. 12. Behaviors Classi che estendono le funzionalità dei model Core behaviors: ACL, Containable, Translate, Tree
  13. 13. Helpers Classi che includono logica per il livello presentazione che possono essere riutilizzate nelle view Core helpers: AJAX, Cache, Form, Javascript, Number, Paginator, RSS, Session, Text, Time, XML
  14. 14. Common Tasks Validazione e sanitization dei dati Gestione errori e debugging Caching e Logging Testing I18n & L10n REST
  15. 15. Utility libs Classi con funzioni di utilizzo generale richiamabili all'interno dell'applicazione Core Libs: Inflector, String, Xml, Set, Security, Cache, HttpSocket
  16. 16. Console Apps BAKE: script per la generazione di codice: models, views, controllers Possibilità di creare template da utilizzare per generare elementi dell'applicazione personalizzati
  17. 17. Scaffolding & Bake Creazione dinamica del CRUD delle tabelle del database (Scaffolding) Creazione statica delle classi HTML e dei controller (Bake)
  18. 18. Ambiente di sviluppo Eclipse • PDT per sviluppare in PHP • Subclipse per collegamenti a repository SVN Firefox • Firebug • Web developer bar Apache (con Mod Rewrite) MySQL
  19. 19. Let's go code! Pratica con Cake: esempio
  20. 20. Struttura DB
  21. 21. Code by Convention Definire una convenzione per fare le cose, anziché configurarle Codice più semplice/leggibile, più leggero e più standard Configurazione sempre disponibile per esigenze particolari
  22. 22. Convenzioni per il DB Regole principali: Nomi delle tabelle al plurale (in inglese) Chiave primaria campo ‘id’ Chiavi esterne con nome della tabella al singolare + ‘_id’
  23. 23. Convenzioni per model Regole principali: Nomi delle classi singolari, CamelCased: Person, Apple, BigPerson Nomi dei file separati da _ se composti di più parole: person.php, apple.php, big_person.php
  24. 24. Convenzioni per controller Regole principali: Nomi delle classi plurali, CamelCased e terminanti con Controller: PersonController, BigPersonController Nomi dei file separati da _ se composti di più parole: person_controller.php, big_person_controller.php
  25. 25. Convenzioni per view Regole principali: Le view sono contenute in una cartella all'interno di una tabella che ha il nome del controller Ciascuna view è un file che ha il nome di un metodo (action) del controller separato da _ se contiene più parole
  26. 26. CakePHP URL ...siteurl/controllername/actionname/par1 /par2 Si possono comunque personalizzare gli URL utilizzando le route
  27. 27. Risorse Website: http://www.cakephp.org Cookbook: http://book.cakephp.org Bakery: http://bakery.cakephp.org API: http://api.cakephp.org CakeForge: http://www.cakeforge.org Test Cases: http://api.cakephp.org/tests Google Group: http://groups.google.com/group/cake- php
  28. 28. Libri Apress – Beginning CakePHP from Novice to Professional (Pag. 341) Apress - CAKEPHP - Practical CakePHP Projects (Pag. 389) Packt – Publishing CakePHP Application Development (Pag. 328) Tutorial redatti da IBM visibili anche su scribd.
  29. 29. Grazie!!! Andrea Chiarottino e Francesco Ronchi contacts@crop.it http://www.crop.it
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×