Le basi di Yii

Ciao a tutti! Sono nuovo del settore "framework php", ma ho voglia di imparare per sviluppare un portale fatto come si deve. Vorrei un consiglio da voi esperti perchè mi sono reso conto che un framework non è qualcosa su cui ci si improvvisa coder, dunque vi chiedo: dove imparare le basi? Con questo intendo le basi della programmazione ad oggetti e, più precisamente, del funzionamento di Yii. Purtroppo la documentazione disponibile sul web dà molto per scontato e non ci si può fare molto. Ci sono libri, manuali, guide in proposito (in italiano, please)? Voi come avete iniziato?

Grazie! :)

Bella domanda e grazie per il VOI ESPERTI.

Se leggi qua si impara ancora molto, altrimenti non ci sarebbero post :)

Credo che se stai ancora studiando la programmazione ad oggetti non dovresti iniziare da un framework ma da zero senza framework così capisci meglio la logica dell’http, request, response, get, post ecc

Poi puoi passare ai framework altrimenti il framework ti nasconde la logica a basso livello che dovresti apprendere per prima cosa

ciao

Ciao Roby, mi associo al consiglio che ti ha già dato proid.

Se sei un principiante assoluto di php, php oop, sql, mvc e javascript non iniziare da un framework, potresti impararlo ma avrai sempre una grave lacuna di base.

Io ti consiglio questo percorso, se qualche step lo hai già fatto tanto meglio:

  1. PHP di base, partendo dal procedurale

  2. SQL di base, vedo sempre più junior che non capiscono che un buon disegno del db che è sotto una applicazione serve a scrivere molto meno codice dopo. Usando il punto 1. scrivi applicazioni che accedono al DB usando le funzioni native. Non passare a un db NoSQL senza sapere bene come usarne uno SQL.

  3. HTML e HTML5, con un livello di profondità più o meno profondo a secondo di quanto siano le tue inclinazioni a occuparti di frontend

  4. Javascript di base, interazione con il DOM

5 OOP Php. E poi dai una occhiata a una libreria ORM.

  1. Dai una occhiata ai pattern, impara i rudimenti di MVC da un punto di vista formale, poi prova (Dico prova…), a pensare semplici applicazioni fatte senza un framework, che usano questo pattern

  2. Scegli un framework (Yii, quale se no?) e scoprici tutto quello che è nei punti precedenti

  3. Inizia ad approfondire, AJAX per prima cosa, JQuery per seconda, poi dipende da te, se sei un one man show devi sapere tutto, altrimenti se sei in un team che ha responsabilità divise tra backend e frontend i tuoi percorsi saranno altri…

Ovviamente questa è solo la mia opinione, e gli altri qui ti daranno la loro, che sarà diversa perchè frutto di diverse esperenze, ma penso che:

a. Yii come altri framework semplifica molto la vita con le sue funzioni di scaffolding, quindi potrebbe nascondere delle lacune delle persone che lo usano, che poi avranno delle enormi difficoltà non appena ci si muove dal esempio di base

b. Yii è solo un framework, ti aiuta a andare più veloce, ma la logica dell’applicazione devi crearla tu, altrimenti ti ritroverai a fare quello che vuole Yii, per poi dire che è rigido, per poi andare a cercare un altro framework.

Per la cronaca io sono arrivato a Yii da poco, conoscevo bene il php, all’inizio mi è sembrato molto rigido, adesso non più, però ho smesso di usare molte cose che arrivano insieme, perchè troppo di alto livello e ho iniziato di nuovo a fare cose da un livello medio basso. Mi trovo abbastanza bene, prima di scegliere Yii ho fatto un giro con Symfony e Zend, ma la curva di apprendimento favorevole di Yii ha vinto.

Meglio di così maxluna non ti poteva consigliare.

Mi permetto solo di aggiungere un dubbio per te che inizi.

Dato che devi ancora studiare il linguaggio di programmazione sei nella posizione di poter optare anche per il linguaggio per te migliore.

Io uso Yii perchè avevo già pratica di PHP e Yii è simile a Rails di ruby altrimenti se fossi già skillato su Ruby avrei optato per Rails.

Valuta però che Ruby anche se un linguaggio forse più evoluto e moderno di PHP ha meno comunità sotto (anche se molto attiva), meno risorse in rete e sopratutto meno providers che qttualmente danno spazio web ruby

A te l’ardua scelta :)

La teoria la conosco, la pratica un pò meno perchè non ci ho mai fatto tanto…Giusto qualche script.

Del SQL ho le basi, diciamo che non riuscirei a fare query molto molto complesse ma per quanto riguarda struttura, SELECT, INSERT, UPDATE e DELETE ci siamo!

Purtoppo non di mestiere vero e proprio ma faccio il web designer, quindi no problem! ;)

Questo non era nei miei piani…A cosa mi servirebbe?

Cos’è una libreria ORM?

Qualche risorsa teorica per iniziare?

Non vedo l’ora!!

Arrivato a questo punto credo che non ci sia più bisogno di studiarli…Per le mie esigenze basta implementare o modificare leggermente gli script già esistenti!

@proid: la mia scelta è PHP perchè le basi già le ho ed è un linguaggio fondamentale fra i server-side. Comunque seguendo i vostri consigli ho iniziato a studiare il PHP come linguaggio ad oggetti e devo dire che stranamente il paradigma OOP lo sto capendo meglio (altre volte mi sono cimentato ma venendo dal procedurale era tutto incasinato…)!

Quello che vorrei sapere è: quando è possibile passare ad Yii? E soprattutto come? Cioè cosa bisogna saper fare in pratica per poter passare agilmente ad un framework? E in che modo studiare Yii visto che non ha molta documentazione in italiano? Grazie! :)

Se hai già le basi allora diciamo che la cosa principale che differenzia il lavoro PHP senza framework e con framework è che il secondo usa il pattern MVC cioè separa il codice in tre componenti principali : dati (model), visualizzazione (view) e controllo di flusso (controller).

Prova a seguire la guida del framework che è fatta molto bene ( http://www.yiiframework.com/doc/guide/1.1/it/index ) guardando per prima la parte che tratta l’MVC ( http://www.yiiframework.com/doc/guide/1.1/it/basics.mvc )

buona lettura

Roby,

Su ORM leggi qui:

Quando usi Yii si può accedere al DB in vari modi, tra cui direttamente in SQL, ma i più potenti sono tramite astrazioni tipiche della programmazione OOP. ORM semplifica l’accesso e crea uno strato che rende l’interazione con DB diversi semplice. Quindi la stessa applicazione può funzionare con MySQL o altro motore SQL senza cambiare niente altro che la configurazione di base.

Qui e nei capitoli successivi vedi come è implementato in Yii.

http://www.yiiframework.com/doc/guide/1.1/en/database.ar

Riguardo Javascript AJAX e JQuery sono basati su Javascript, anche qui non appena esci dagli script di base una buona base di Javascript serve, ritengo che oggi sia veramente importante avere una conoscenza avanzata, prima ancora di studiare JQuery.

Riguardo le fonti, non saprei, comunque su Google Scholar trovi moltissimo materiale teorico se vuoi, ma non ti consiglio di insistere così tanto. In ogni caso potresti partire anche dalla spiegazione alla base dei framework come Yii o Symfony o RoR

Grazie ad entrambi! Ora non mi resta che continuare a studiare…Credo che farò più o meno così:

  1. PHP ad oggetti teoria + pratica

  2. MVC teoria

  3. Yii teoria + pratica incluso ORM e altre funzioni tipiche di un framework

In questo modo dovrei riuscire a capirci qualcosa! Ho già installato Yii per provare ma non sono riuscito ad interfacciarmi col db per creare una vera applicazione test. Con tanta pratica dovrei farcela, quindi mi riservo di passare di qui in caso di problemi…Non voglio annoiarvi! :D

Buono studio e ricorda di chiedere se hai bisogno.

Per interfacciarti al database, Yii dovrebbe creare un database sqlite di default ma se vuoi usare mysql, crea un database e specifica i paramtri di connessione nel file protected/config/main.php sezione components/db

Ricordati che se il database non è nel pc dove hai il webserver devi autorizzare l’utente del database a connettersi dall’host dove hai apache.

ciao

Se vuoi comprendere l’MVC facilmente, puoi provare https://github.com/sensorario/abframework è un’implementazione semplice semplice dell’MVC.

Per il resto… io ogni tanto scribacchio su yiinotes.com

Se ti va di farci un salto ogni tanto e di suggerirmi qualche cosa scrivo un post. Ma prima di tutto, chiedi quei nel forum: siamo sempre di più e sempre più competenti e … gratuiti =). Ci piace aiutarci a vicenda =).

Roby, ti sono stati dati ottimi consigli (un’altra conferma della veramente notevole qualità di questa community), io ne aggiungo un’altro: per apprendere velocemente è fondamentale scambiare idee con altri sviluppatori.Tu lo stai già facendo con il newsgroup, ma si può fare di più.

Il Barcamp è già una buona idea. Un’ altra potrebbe essere cercare di incontrare ogni tanto qualcuno che stia dalle tue parti per parlare a ruota libera di quello che si sta facendo e delle difficoltà che si stanno superando: può sembrare una perdita di tempo, ma per la mia esperienza in questo modo ogni tanto saltano fuori spunti e concetti che ti riorganizzano le idee e ti fanno fare un salto avanti.

…liberi di non crederci, ma in tanti anni di lavoro in azienda ho constatato che certe volte le idee più interessanti non vengono fuori da un meeting, ma davanti alla macchinetta del caffè!

Beh, nel mio modo di lavorare preferito, le riunioni si fanno ad inizio giornata con un caffè. Il caffè non va inteso come pausa. Ma come "iniziamo la giornata insieme". Si può fare anche dopo il caffè. =)