Yii perché?

Ciao a tutti,

è il mio primo post e vi auguro subito un buon 2012.

Nei miei buoni propositi del 2012, c’è l utilizzo di un framework PHP. Ho sempre scritto codice senza l utilizzo di un framework, al massimo di un IDE.

Devo effettuare un CMS, e sto guardando in giro i vari Framework, e vengo proprio nella vostra "tana" per chiedervi il vostro parere ( che può anche essere scontato)

Ho letto di diversi framework in giro, non ne ho provati neanche uno, ma ho letto varie documentazioni, impressioni, visto video…insommam mi sono fatto un’idea.

Se sono qui è perché Yii è stato preso in considerazione come possibile candidato.

Quello che non mi è ancora chiaro del Framework in generale è:

Se ad esempio devo fare una cosa particolare che non è nelle librerie del Framework, devo creare un modulo, o posso anche procedere al "modo" classico di scrivere codice? implementando ad esempio classi personali e/o patterns?

I concorrenti che avevo preso in considerazione sono Zend, e CodeIgniter… Qualcuno di voi gli ha provati e poi ha scelto Yii? se si perché?

Se non Erro, la cosa più tosta per utilizzare un framework è di studiare e utilizzare le proprie API.

Perché appunto per collegarsi, ad esempio, ad un Database, Yii scrive un determinato pezzo di codice, Zend un altro e CodeIgniter un altro ancora per effettuare tutti la stessa cosa, ma questo codice è una parte delle API fornite dal Framework (correggetemi se sbaglio :) )

Le mie domande finali sono:

  • Perché scegliere Yii a dispetto di altri?

  • La curva di apprendimento è accessibile?

  • Esistono libri (mi piacciono i libri) su yii in Italiano?

  • come si comporta Yii con jquery ed altri "fattori" esterni?

spero di essere stato chiaro, forse in dei pezzi banale, ma che mi aiutano sicuramente alla scelta azzeccata!!

Grazie a tutti

Se vuoi puoi riciclare tutto il codice scritto sino a questo momento. Estendere yii è mostruosamente semplice. Per farla breve, puoi mettere le tue classi php dentro alla cartella /protected/components/LaTuaClasse.php ed usare "più o meno liberamente" dentro al codice.

Zend e CodeIgniter? Zend non lo ho mai visto. CodeIgniter l’ho confrontato con yii. Yii è molto più semplice da apprendere. Più rapido nello sviluppo. Più rapido da apprendere. Ma ti dirò di più. Uso Yii da oltre un anno ed in questo momento sto anche studiando Symfony2. Anche Symfony2 è una gran cosa. Lo utilizzerò per un progetto. Ma continuo a scegliere yii. E’ più semplice e rapido yii.

L’accesso al database è potentissimo. Ricco di strumenti. Io ho smesso di scrivere codice SQL =). Symfony2, per esempio, utilizza docrtrine. Doctrine e Yii utilizzano lo stesso pattern: ActiveRecord.

Perchè scegliere yii rispetto ad altri?

La documentazione è estremamente curata. La community è in continua crescita. Yii è stabile da almeno 5/6 mesi. Ieri è uscita la versione 1.1.9 che lo rende MOSTRUOSAMENTE POTENTE (Ci sono anche nuove ed interessanti features aggiunte proprio sul fronte del database). A proposito di database. Ho appena scritto una nuova estensione: queryii. In pratica posso modellare il database direttamente dalla console. CHESPETTACOLO

La curva di apprendimento è accessibile?

Accidenti!!! SI! A partire dal forum. Da siti web come http://yiianswers.com/, questo stesso forum, www.yiiframework.it, già che ci sono faccio pubblicità al mio blog: www.yiinotes.com, http://www.yiiplayground.cubedwater.com/ tu chiedi, il web risponde =). La community è qui da quando è nato yii. Non so gli altri … ma io ad yii gli voglio bene nel vero senso della parola.

yii mi ha dato il coraggio di licenziarmi, aprire partita iva, e lavorare da solo. Ora lavoro come voglio io. Con chi dico io. Con la tecnologia che dico io =).

Esistono libri (mi piacciono i libri) su yii in Italiano?

Oi, io ho una marea di pagine scritte tutte in italiano. Le sto scrivendo piano piano su yiinotes.com ma non mi dispiacerebbe creare un ebook (GRATUITO) da condividere con tutti noi/voi. Il mio solo blocco è: non ho la più pallida idea di come fare =).

Come si comporta Yii con jquery ed altri "fattori" esterni?

Effettivamente non scrivo più nemmeno jquery o javascript. E’ integratissimo ed il supporto a questo framework. Ci sono una marea di plugin.

IO AMO QUESTO FRAMEWORK =)

Grazie della risposta, direi molto interessante.

symfony mi dà l idea che la curva di apprendimento è un po’ ripida.

Mi piace vedere che parli di questo framework con "amore", che significa "pochi" grattacapi e tanto lavoro effettuato.

Grazie per le dritte che mi hai dato sui siti e non solo.

Ho deciso di provare Yii, quindi mi avrete tra le “scatole” per un po’ :)

onestamente posso darti solo un consiglio:

se hai bisogno della documentazione in italiano il problema è serio.

in questo mestiere bisogna conoscere l’inglese poichè la documentazione tradotta è sempre o vecchia o inesistente

bisogna essere in grado di imparare dalla documentazione ufficiale in inglese, altrimenti ti troverai a dover affrontare uno svantaggio iniziale difficilmente sormontabile.

in bocca al lupo col framework, qualunque tu scelga :D

Ciao,

si so che tutto gira (giustamente) intorno all’inglese, ma non nascondo che questo mi rallenta. Non dico che non so dire The Cat is on the table :) ma insomma non sono un madrelingua

grazie di nuovo

Ciao @pecoranera, anch’io mi sono avvicinato da poco a questo framework e ho capito che fosse meglio degli altri, dopo aver letto recensioni di confronto. La documentazione in italiano scarseggia ancora, però è attivo un progetto per la traduzione della documentazione in italiano a cui spero partecipino molti dei frequentatori di questa community. Se ognuno traducesse una sola paginetta, in poco tempo avremmo tutto in italiano.

In inglese lo fai lo stesso, ci vuole solo un po’ di tempo in più.

Io nel mio piccolo sto pubblicando dei piccoli spezzoni di codice completi a poco a poco che scopro le cose, così da aiutare i principianti ad apprendere ancora più velocemente lo strumento. E ti devo dire che finora, ogni volta che scopro nuovi concetti e/o capisco come sono stati implementati su yii, mi dico sempre: ma che figo che è sto framework!

ciao!

Sto cominciando a usare yii, io non ho mai usato altri framework quindi non ti so dire la differenza (anche perché era la mia domanda )

Vedo comunque che bisogna cambiare il "modo" di ragionare, dal classico PHP anche ad oggetti.

Non usavo MVC e tanto meno appunto framework

Sto provando a fare un semplice Login ora, in PHP "classico" lo avevo già fatto con una certa "velocità" qui sto leggendo la documentazione a riguardo, questo appunto è quello che mi spaventa…imparare le librerie, praticamente da zero, ne vale la pena?

Io sono passato a yii proprio per implementare MVC che è drasticamente migliore e diverso da SPAGHETTI CODE.

All’inizio è difficile come tutte le cose che non si sanno , ma sono convinto che nel giro di qualche mese, scriverò codice migliore e più velocemente.

Login e registrazione li ho studiati la scorsa settimana e ho scritto una guida per aiutare i principianti. Mi farebbe piacere se provassi a seguirla e magari a postare qualche tua riflessione / miglioramento.

ciao, si ho visto, preferisco prima leggermi un po’ di documentazione altrimenti sarebbe un copia incolla un po’ inutile per me.

il fatto rimane lo stesso, non riesco a vedere ancora la convenienza,di imparare della API per fare delle cose che secondo me (sicuramente sbaglio e sarò contento di essere smentito) sono più veloci a farle da zero (vedi proprio un login)

In effetti il login è già implementato =).

intendi che è gia pronto?

Se guardi nell’app che ti crea yii quando segui gli screen cast, vedrai che tra i link c’è anche login/logout

Magari prova a leggere l’inizio della guida, almeno la parte tradotta in italiano

si ci avevo dato un occhiata, comunque sto leggendo un bel po’ di documentazione, sicuramente quando “ri-arrivo” al Form avrò più basi…anche se ovviamente ho un po’ di dubbi anche sulla documentazione che sto leggendo…ma non voglio scriverli qui altrimenti vado nettamente OffTopic

Ovviamente vi ringrazio per le vostre risposte

  1. rifare un sistema di login da zero non è assolutamente veloce, almeno che non si ignori ogni crisma relativo alla sicurezza ed ai potenziali attacchi

  2. mettendo anche che impieghi realmente meno tempo che utilizzando un framework che già lo implementa probabilmente ti ritroverai con il seguente anti-design pattern: reinventing the square wheel. Questo significa utilizzare il tuo tempo per reinventare qualcosa che già esiste da secoli e farlo in maniera nettamente peggiore dell’originale.

  3. nella migliore delle ipotesi ti ritroveresti con il seguente anti-design pattern: reinventing the wheel. Questo significa aver buttato ore per reimplementare in maniera identica una cosa che era già stata fatta e testata fino all’estremo quando invece ci avresti impiegato 10 minuti ad usare la versione già pronta.

Quando sei uno sviluppatore il tuo tempo vale soldi sia per te che per il cliente, e quando hai 20 giorni/uomo per consegnare un portale al cliente vedrai che non avrai nè il tempo nè la voglia per ricreare Nmila volte qualcosa che puoi trovare già fatta, testata in maniera più approfondita e sicuramente ottimizzata meglio di quella che potresti realizzare tu.

Sono tutte cose di cui ti accorgerai quando questo per te diventerà un lavoro e non più semplice studio.

Ad ogni modo non pensare di aver trovato il sacro graal, ogni progetto è diverso dagli altri.

A volte ti capiterà di non aver bisogno di tutto quello che Yii ti offre e preferirai utilizzare un fw più semplice, come ad esempio code igniter, altre volte invece avrai bisogno di qualcosa di più potente e ti ritroverai ad utilizzare qualcosa come zend framework.

Yii non è la panacea di tutti i mali, così come non lo sono gli altri framework, il punto sta nel capire quale tool ti permette di realizzare al meglio il task che ti sei prefisso.

Grazie di nuovo per la risposta.

Sicuramente quello che dici è verissimo, ho lavorato diversi anni per una webagency che non faceva uso di Framework, ed è verissimo quello che dici, perché re-inventare la ruota è un po’ inutile con tempi molto più lunghi del previsto.

Forse per questo che sono un po’ scettico, perché non le ho mai provati.

Grazie di nuovo per le risposte

Io mi sono dovuto licenziare per usare un framework =).

No dai non è vero. Però è vero che molte aziende non usano framework perchè non vogliono dipendere da codici di altri. Un po’ come usare java senza le jpa o C# senza net. … quindi php senza yii, symfony2 o altri framework … mah!

Dopo mesi arrivano a risultati che richiedevano pochi minuti di lavoro. Non capisco le loro motivazioni. Anche mostrando loro codici più rapidi, veloci, performanti … scelgono sempre e comunque altre strategie.

secondo me, dove lavoravo, non c’era “tempo” per imparare un framework, o comunque il “capo” essendo programmatore PHP di “vecchia data” rimaneva appeso e affezionato ai vecchi codici…

Beh, puoi sempre mettere i "vecchi codici" dentro alla cartella components e lavorare con quelli =).

Perché non scrivi un bel tutorial in italiano su come si riciclano i "vecchi codici"?