Newsgroup: it.comp.www.php
Titolo: Quale framework per lo sviluppo?

Salve a tutti,
devo iniziare a scrivere un grosso progetto e per la prima volta dopo anni
ho deciso che sarebbe stato meglio poggiarmi su un framework esistente che
continuare pian piano ad ingrandire il core delle mie applicazioni.
Mi piacerebbe che avesse gestione dei template, la gestione di
autorizzazioni per gli utenti, la creazione di URL ottimizzati per i motori
di ricerca (se ad es. parlo di Pippo in un articolo, sarebbe bello avere
tipo host/vaire/path/pippo/altroeventualmente ) ed eventualmente un sistema
di validazione.
Dovrebbe funzionare con Php5 e non è importante che il 4.
Quasi dimenticavo: vorrei interagire con il mio database (MySQL) tramite
ORM.
A me è sufficiente che ci siano delle API per fare quello che mi interessa:
i moduletti già pronti non mi servono.
Ho girato in lungo e in largo per il web, ma forse non abbastanza... la cosa
più interessante che ho trovato è ZooP, ma purtroppo non supporta ORM...
Scusate il lungo messagio, ma: avete qualche suggerimento da darmi?
Grazie in anticipo per l'aiuto
Paydj
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ORM...
Personalmente non ho ancora capito benissimo cosa si intende per ORM, ma 
dai un occhio a Zend Framework. Definendo le relazioni tra le tabelle 
potresti avvicinarti abbastanza al concetto di ORM:
http://framework.zend.com/manual/en/
zend.db.table.relationships.html#zend.db.table.relationships.fetching.dependent
Bye.

 potresti avvicinarti abbastanza al concetto di ORM:
In pratica ORM mappa le tabelle del tuo database come oggetti. Quindi tu
lavori con il database come se stessi lavorando con gli oggetti...
Per esempio:
$istanza = new Oggetto()
$istanza->id = 5;
$istanza->nome = "Ciccio";
$istanza->save();
equivale a dire "insert into oggetto (id, nome) values (5, 'Ciccio');"
E' una gran comodità se si lavora con gli oggetti... e purtroppo non ho
ancora trovato quello che fa al caso mio (ossia ORM in un valido framework
di sviluppo)...
Mi sa che se continua così me lo devo assemblare da solo!!! :\\
Grazie per l'aiuto


 equivale a dire "insert into oggetto (id, nome) values (5, 'Ciccio');"
Ah, allora e` come lavora di base lo Zend Framework, con solo un passaggio 
in piu` (l'oggetto table e` necessario perche` va a prendersi lo schema 
dal database, altrimenti ti tocca creare manualmente i campi permessi e 
gestire da solo le varie operazioni).
$otable = new ObjectTable();
$obj = $otable->createRow();
$obj->id=5;
$obj->nome = "Ciccio";
$obj->save();
Leggendo un po' di definizioni in giro sembrava fosse qualcosa che 
automaticamente calcolava le relazioni tra le tabelle e creava al volo 
anche le join.
Bye.

 Paydj
il 7

 anche le join.
Beh, in effetti il mio era un esempio "un poco semplicistico"... In ogni
modo i vari ORM possono gestire in maniera molto diversa le relazioni,
soprattutto le molti a molti.
Lo Zend sembra davvero un ottimo framework, arrivato anche alla RC3, ma non
è realmente ORM e in più non ho trovato la gestione dei template... ti
ringrazio della disponibilità, ma non credo che faccia per me...


 di niente!
Ancora grazie... ora mi documento un po' e poi ti faccio sapere...


 Ancora grazie... ora mi documento un po' e poi ti faccio sapere...
buona fortuna

 potresti avvicinarti abbastanza al concetto di ORM:
Definizione di ORM:
http://en.wikipedia.org/wiki/Object-relational_mapping
Lista di SW PHP che fornisce ORM:
http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#PHP
Zend implementa invece il table gateway pattern:
http://www.martinfowler.com/eaaCatalog/tableDataGateway.html
ciauz
-- 
punkarruso


http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#PHP
Grazie mille per la lista... in ogni modo io avevo bisogno di framework di
sviluppo MVC che utilizzassero un ORM per la parte di modeling...
Per ora sto seguendo il consiglio di "il 7" e ho installato Symfony che usa
Propel (presente nella tua lista): spero di poterlo studiare con attenzione
quanto prima...
Ciao ;)


 
http://www.martinfowler.com/eaaCatalog/tableDataGateway.html
Preferisco appunto questo sistema, che definisce tutto da codice.
Bye.

 altro).
sarei curioso di sapere il perché.
In un contesto OOP, l'ORM è.. logico! :)




Perche` ho brutte esperienze con Java... :)
Se definisco una classe UserTable mi aspetto di trovarci dentro tutto 
quello che riguarda la tabella "user" nel database, compresa la sua 
definizione, in una funzione che la crea se non esiste, e le normali 
funzioni riferite a lei.
Andare alla ricerca nel filesystem di un file xml che definisca la 
tabella, di un altro che contiene le relazioni utente-database, un'altro 
model-database, un'altro per questo e per quello, mi stressa. :)
A parte il file di config (per le password al DB, gli indirizzi email per 
il contact, ecc.) tutto deve essere nel codice PHP, secondo me.
Bye.

 Bye.
concordo..
-- 
www.iuz-lab.info
 - 
www.php-faq.org

 il contact, ecc.) tutto deve essere nel codice PHP, secondo me.
concordo anch'io.
ciao!
-- 
punkarruso

 $obj->nome;
Allora stai parlando di Zend_Db_Table_Row, nello ZF e` lei che si occupa 
di queste cose.
Se la crei con la createRow() di una Z_D_T_Abstract diventa esattamente 
come dici tu, altrimenti devi estenderla e definire nel costruttore 
l'adapter al Db, la tabella di riferimento, ecc.
In pratica sono strettamente collegate tra di loro.
Grazie per il chiarimento. :)
Bye.