[Orm] Approccio Up-Bottom
#1
Posted 17 September 2012 - 02:30 AM
sto cominciando adesso ad usare yii e volevo farvi la seguente domanda:
L'ORM nativo di Yii (Active Record) offre un approccio bottom-up.
Esiste un ORM compatibile con Yii che offra l'approccio Top-Down (ovvero la generazione del DB a partire dagli oggetti)?
Attualmente ho visto che solo Doctrine2 offre questa funzionalità, ma cercando su internet non ho ancora ben capito come farlo ad integrare con Yii.
Inoltre doctrine2 non è che mi piaccia un granché, sono appena scappato da Symfony :-D
Grazie a tutti
Mojo
#2
Posted 17 September 2012 - 02:36 AM
Cmq avevo letto oltre un anno e mezzo fa di una estensione yii per doctrine2. Magari fa al caso tuo.
Ma permettimi una domanda. Gli oggetti di cui parli, poi li faresti a mano?!? Potresti fare tu una nuova estensore ne?!?
#3
Posted 17 September 2012 - 02:52 AM
sensorario, on 17 September 2012 - 02:36 AM, said:
Cmq avevo letto oltre un anno e mezzo fa di una estensione yii per doctrine2. Magari fa al caso tuo.
Ma permettimi una domanda. Gli oggetti di cui parli, poi li faresti a mano?!? Potresti fare tu una nuova estensore ne?!?
Ciao sensorario,
Symfony non è malaccio, anche se parecchio complicato; il problema è che non si può fare affidamento ad un progetto che dalla 2.0 alla 2.1 cambia radicalmente la sintassi e i nomi degli oggetti: se avessi avuto dei progetti in produzione con la 2.0, per passare alla 2.1 avrei pianto 2 settimane...
Per quanto riguarda l'approccio DB, la mia idea sarebbe di partire da una progettazione object oriented della app per poi definire gli oggetti da mappare sul DB (senza quindi toccare il DB).
Ho visto che Active record non permette questa cosa e stavo appunto cercando un'alternativa.
La scelta sarebbe su doctrine2, ma la mia paura che è che se fanno una minor release distruttiva come quella che hanno fatto per symfony2 tanto valeva restare con symfony2
Quote
Si, gli oggetti da mappare me li farei a mano e poi su quelli genererei il DB
Per quanto riguarda creare una estensione credo che sia ancora fuori dalla mia portata
ciao
#4
Posted 17 September 2012 - 04:29 AM
Comunque non sei obbligato a scaricare l'ultima release. Puoi sempre e comunque scaricare la versione, stabile, che interessa a te. E puoi fissare quella. Lo stesso vale per Symfony2 o 2.1.
Mi fai pensare che non fai TDD e che quindi casi come questi sembrano grosse situazioni "NON SOTTO CONTROLLO".
Che cosa farai, però, se Yii2.0 non sarà retrocompatibile con la 1.1?
#5
Posted 17 September 2012 - 04:50 AM
sensorario, on 17 September 2012 - 04:29 AM, said:
Parecchio disagio :-)
Se avessi avuto 10 progetti sarebbe stato un bel pò di tempo perso, e soprattutto senza la garanzia che di non dover ripetere la cosa con le versioni future
Quote
vero, ma perderei tutti i bugfix successivi e rimarrei con una versione acerba e non aggiornata
Quote
Per quanto riguarda il TDD è nei miei piani, ma purtroppo non nel breve periodo.
Quote
Beh passando ad una major release capisco che questi problemi possono esserci, ma in ogni caso il buonsenso vorrebbe che venissero mantenute entrambe per un certo periodo di tempo.
In seguito uno potrebbe decidere se lasciare il progetto con Yii 1.x o migrarlo su Yii 2.x
Per quanto riguarda invece i DB da associare a Yii, te puoi consigliarmi quale scegliere per l'implementazione top-down?
Se dovessi fare un'estensione per doctrine 2.x (che attualmente non ho la + pallida idea di come si faccia), quanto tempo (grossomodo) ci vorrebbe?
ho visto che l'estensione per Doctrine2 con Yii 1.1 è fermo alla 2.0, quindi non so quanta affidabilità possa garantire.
Grazie mille per la pazienza.
Mojo
#6
Posted 17 September 2012 - 04:53 AM
#8
Posted 18 September 2012 - 02:15 AM
sensorario, on 17 September 2012 - 05:08 AM, said:
No, non dico che non sia affidabile, ma sicuramente qualche bugfix verrà fuori nelle versioni successive.
Cmq sto provando l'integrazione di Doctrine 2 con Yii con l'estensione presente sul sito.
Provo e ti so dire :-)
ciao
#9
Posted 18 September 2012 - 02:56 AM
#10
Posted 18 September 2012 - 03:15 AM
sensorario, on 18 September 2012 - 02:56 AM, said:
?
Scusa ma forse mi sono perso qualcosa...
Se la 2,0 ha un bug, questo viene corretto nella versione successiva che può essere la 2.0.1 in caso di modifiche veramente minime, oppure nella 2.1 nel caso in cui ci siano anche migliorie sostanziali ma non critiche.
Sto sbagliando?
#11
Posted 18 September 2012 - 04:56 AM
L'avanzamento non è lineare: potrebbe nascere la 2.0, poi la 2.1, poi la 2.0.1 poi la 2.0.2, poi la 2.1.1. E così via.
This post has been edited by sensorario: 18 September 2012 - 04:56 AM
Reason for edit: Fixed typo
#12
Posted 18 September 2012 - 05:12 AM
sensorario, on 18 September 2012 - 04:56 AM, said:
L'avanzamento non è lineare: potrebbe nascere la 2.0, poi la 2.1, poi la 2.0.1 poi la 2.0.2, poi la 2.1.1. E così via.
Capito, quindi fanno un pò come gli pare...
Ho fatto bene a venire via da Symfony
#13
Posted 18 September 2012 - 05:20 AM
#14
Posted 18 September 2012 - 05:44 AM
sensorario, on 18 September 2012 - 05:20 AM, said:
Si ma windows95 e windows 8 sono paragonabili a delle Major release, quindi se due versioni di un software cambiano radicalmente (ad esempio eliminano delle funzioni), si dovrebbe passare ad una major release...
almeno questo è quanto mi avevano insegnato ad Ingegneria del software.
Il mio parere è che se si avessero 4 o 5 major release solo perché ci si è accorti che una funzione non serve + o che il codice precedente era uno schifo, il progetto perderebbe credibilità, quindi molto meglio avere due minor release che sono "quasi" incompatibili tra loro.
#16
Posted 18 September 2012 - 06:17 AM
sensorario, on 18 September 2012 - 06:08 AM, said:
:-D
Vedi che ho fatto bene? eheheh
cmq con Doctrine non ne sto cavando nulla, l'extension si basa su doctrine 2.0 ed alcune cose sono cambiate.
mi sa che mi butto su AR oredBeans e buonanotte.
Ora sento se qualche anima pia sa qualcosa di + di quello che trovo in giro.
grazie mille
ciao
Mojo
#17
Posted 19 September 2012 - 01:27 AM
#18
Posted 19 September 2012 - 11:43 AM
Vedrei più la somiglianza con PHP visto che si tratta di strumenti di sviluppo e non di utilizzo finale.
Le funzioni che rimangono in comune tra le Major vengono aggiornate in tutte le release a meno che una major non passi allo stato "non più mantenuta".
Poi ci sono sempre dei passaggi dolorosi sopratutto per progetti che si vogliono mantenere aggiornati con le nuove tecnologie, php ad esempio, ha mantenuto alta retrocompatibilità a discapito dei tempi di rilascio mentre ruby ha un sacco di versioni ma con grossi problemi di retrocompatibilità!
Detto questo la maturità e l'affidabilità di un progetto sono valutabili _anche_ dalle motivazioni che porta avanti Mojo con tutti i però che dice Sensorario!
Detto questo con Yii 2.0 credo che qualche doloretto lo proveremo anche noi!
#19
Posted 15 October 2012 - 02:21 PM
Nicola, on 19 September 2012 - 11:43 AM, said:
Vedrei più la somiglianza con PHP visto che si tratta di strumenti di sviluppo e non di utilizzo finale.
Le funzioni che rimangono in comune tra le Major vengono aggiornate in tutte le release a meno che una major non passi allo stato "non più mantenuta".
Poi ci sono sempre dei passaggi dolorosi sopratutto per progetti che si vogliono mantenere aggiornati con le nuove tecnologie, php ad esempio, ha mantenuto alta retrocompatibilità a discapito dei tempi di rilascio mentre ruby ha un sacco di versioni ma con grossi problemi di retrocompatibilità!
Detto questo la maturità e l'affidabilità di un progetto sono valutabili _anche_ dalle motivazioni che porta avanti Mojo con tutti i però che dice Sensorario!
Detto questo con Yii 2.0 credo che qualche doloretto lo proveremo anche noi!
Scusate ma non avevo visto i post :-)
Ad ogni modo sono riuscito ad integrare doctrine2 con yii, anche con la parte di mappatura tra il modello ed il form.
Appena posso metto tutto insieme e faccio un tutorial per chi dovesse averne bisogno.
L'unico 'problema' é che scavando nelle funzioni che mappano i form con i modelli ho scoperto che l'assegnazione dei campi del form al modello viene effettuata per valore invece di utilizzare i relativi setter e getter.
Inoltre un campo del modello é considerato un campo del form solo se é pubblica e non é statica....
Nell'ottica di realizzare un framework orientato agli oggetti, questa cosa é un pò uno schifo!
Ho creato un post sul forum principale per capire se la mia modifica alle funzioni é integrabile nelle prossime versioni di yii o se ci sono dei motivi validi per giustificare l'implementazione originale, ma al momento non mi ha risposto nessuno.....
Ad ogni modo per concludere il discorso sulle minor e major release, io rimango dell'idea che in una minor, le modifiche non dovrebbero intaccare le implementazioni precedenti o perlomeno mantenere la retrocompatibilitá (almeno per un certo periodo di tempo) altrimenti in progetti complessi e soprattutto replicabili (come ad esempio una intranet venduta a tanti clienti o anche un semplice cms utilizzato per tanti siti web) si rischia di perdere + tempo a cercare di mantenere aggiornato il sistema invece di sviluppare nuove applicazioni.
La scelta di symfony2 é stata veramente una pessima idea, potevano anzi aspettare due mesi in piú a tirar lo fuori e si sarebbero evitati una figuraccia
#20
Posted 15 October 2012 - 05:24 PM
Mojo, che cosa mi dici, allora delle release di ubuntu che hanno come prime due cifre l'anno e come seconde il mese? Tu confondi le major release con le LTS.

Help














