Sviluppo web con CakePHP

Documenti analoghi
3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@ .cz

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

TESI DI LAUREA IN INFORMATICA

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web

Realizzazione di un prototipo di un software web based per la gestione di un inventario comunale

Alfresco è una suite di programmi per l implementazione di un «Enterprise Content Management System».

La struttura di un tema WordPress

INTRODUZIONE ALLE PIATTAFORME

Laboratorio di Basi di Dati

01KPS BF Progettazione di applicazioni web

Corso Programmazione Java Avanzato

Strumenti per l automazione del testing di applicazioni web Javascript-based

L architettura MVC (Model- View-Controller) Introduzione

Allegato 5.7_TEMPLATE DI OFFERTA TECNICA

Curriculum Vitae e Portfolio

DA DEFINIRE Sede del corso: Presso GI Formazione in Piazza IV novembre 5, Milano Orari dalle 9.00 alle e dalle alle 18.

APPENDICE 4 AL CAPITOLATO TECNICO

CakePHP Creare un'applicazione con CakePHP. massimoi@impronta48.it

Ariel David Techiouba

Giuseppe Capizzi. Ambienti di sviluppo Open Source

01KPS BF Progettazione di applicazioni web

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

01KPS BF Progettazione di applicazioni web

Sviluppo su Android. Linux Day Torino 2010

Programmare server. Programmazione Web 1

Claudio Scala. Curriculum vitae WHILE1. Sede operativa (ITA) Sede operativa (ITA)

Port Community System del Porto di Ravenna CONFIGURAZIONE

Programmazione Java Avanzata

Sommario APPUNTI WEB SERVER E PHP

CLAUDIO CICALI. Curriculum Vitae. Informazioni personali Domicilio: Via San Carlo 17, Bologna (ITALY) Nazionalità: Italiana

Paolo Insogna Senior Full-Stack Software Engineer

Corsi di Ingegneria del Software / Interazione Uomo - Macchina Paolo Bottoni

UNIVERSITA' DEGLI STUDI DELL'INSUBRIA. Facoltà di Informatica

Android development. Sviluppo di Mobile Apps sul sistema operativo di Google

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

CV di Paolo Insogna - Pagina 1 di paolo@cowtech.it

F O R M A T O E U R O P E O P E R I L C U R R I C U L U M V I TA E

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Ariel David Techiouba

E-ducation.it. Piattaforma di e-learning DLMS e-ducation.it

La modernizzazione delle applicazioni in ambiente System i5

Prof. Pagani Corrado HTML

26-28 Luglio Angular 2. One framework. Mobile and desktop.

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE TRIENNIO: TERZA DISCIPLINA: INFORMATICA

DUCKMA SRL BACKEND DEVELOPER

ez publish, un CMS Open Source di classe Enterprise Introduzione di base all estensibilità del sistema

Curriculum Vitae Europass

Mirko Ferraro Curriculum vitae

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Università degli studi di Salerno TESI DI LAUREA

Sviluppare applicazioni HTML5 solide e scalabili in AngularJS

Tutti per uno e Swagger per tutti!

Una soluzione WEB-GIS per la pubblicazione di dati statistici della Regione Sardegna

2011 Politecnico di Torino 1

Transcript:

Sviluppo web con CakePHP Andrea Chiarottino e Francesco Ronchi Linux Day Torino 24-10-2009

Presentazione Chi siamo... Chi siete?

Perchè un framework? Velocità di sviluppo Riutilizzo del codice Struttura del codice Uso di modelli standard (MVC, ORM...) Codice di terze parti (community...) Documentazione

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

CakePHP (2) Facile da estendere con componenti, helper, behaviours e plugin. Gestione della validazione Supporto AJAX Autenticazione e ACL Integrazione con SimpleTest

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

MVC visto da CakePHP

Struttura Cartelle app/ cake/ vendors/.htaccess index.php

Struttura Cartelle: app/ app/ config/ controllers/ locale/ models/ plugins/ tmp/ vendors/ views/ webroot/

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

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

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: AJAX, Cache, Form, Javascript, Number, Paginator, RSS, Session, Text, Time, XML

Common Tasks Validazione e sanitization dei dati Gestione errori e debugging Caching e Logging Testing I18n & L10n REST

Utility libs Classi con funzioni di utilizzo generale richiamabili all'interno dell'applicazione Core Libs: Inflector, String, Xml, Set, Security, Cache, HttpSocket

Console Apps BAKE: script per la generazione di codice: models, views, controllers Possibilità di creare template da utilizzare per generare elementi dell'applicazione personalizzati

Scaffolding & Bake Creazione dinamica del CRUD delle tabelle del database (Scaffolding) Creazione statica delle classi HTML e dei controller (Bake)

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

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ù leggero e più standard Configurazione sempre disponibile per esigenze particolari

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

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

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

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

CakePHP URL...siteurl/controllername/actionname/par1 /par2 Si possono comunque personalizzare gli URL utilizzando le route

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/cakephp

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.

Grazie!!! Andrea Chiarottino e Francesco Ronchi contacts@crop.it http://www.crop.it