Applicazioni PHP performanti con Yii framework

Mercoledì 9 Febbraio 2011 - 10:56

di Kiko

PHP e Open Source

Nel panorama dei framework PHP si è recentemente aggiunto Yii, che si sta imponendo velocemente come un prodotto ormai maturo e affidabilissimo.

Yii è leggero e molto veloce, dalle performance eccezionali. Sul sito ufficiale potete prendere visione di un confronto con altri framework. Yii è basato sul pattern MVC, supporta jQuery e può operare con i database quali SQLite, MySQL, PostgreSQL e Oracle.

Al programmatore è richiesta una minima configurazione perché il grosso del lavoro lo fanno una serie di regole per le convenzioni da usare e un po’ di tool per la generazione automatica del codice (tipo quello per le operazioni “CRUD” implementate nei “model”).

Per tutti i dettagli è disponibile un’ottima documentazione sul sito ufficiale e un forum che si arricchisce ogni giorno di nuovi utenti.

Tags:

Categoria: PHP e Open Source | Permalink

Commenti

1

Ottimo Framework. Lo uso già da diversi anni e dopo Cake, CodeIgniter e Zend è stata la mia scelta definitiva.

# - postato da Salvatore Miceli - 09 Febbraio 2011 - 11:01

2

Curioso di provarlo …

# - postato da Christian - 09 Febbraio 2011 - 11:25

3

Gli darò un’occhiata…ma difficile staccarmi dal mio affidabile amico di viaggio Symfony

# - postato da MaiNick - 09 Febbraio 2011 - 14:37

4

Gli darò un’occhiata…ma difficile staccarmi dal mio affidabile amico di viaggio Symfony

considerando che, seguendo il grafico, è il più lento direi che sarà più facile del previsto :P

# - postato da max - 09 Febbraio 2011 - 14:44

5

quoto #Salvatore
anch’io ne ho provati diversi, ma la chiarezza del codice e la sua flessibilità secondo me sono imbattibili. Ha i pregi di CodeIgniter e le funzionalità di Symfony.

inoltre facilita molto l’adozione del metodo di sviluppo TDD, che non avevo mai considerato con altri framework.

consigliato agli sviluppatori che cercano uno strumento flessibile da utilizzare come base per QUALSIASI applicazione

# - postato da markux - 09 Febbraio 2011 - 14:53

6

@Christian provalo pure. Esiste un libro molto chiaro della Apress. E la documentazione che trovi online è di altissimo livello!

# - postato da Kiko - 09 Febbraio 2011 - 15:31

7

@max sì, ma il grafico è così vero?

# - postato da Kiko - 09 Febbraio 2011 - 15:31

8

@max come Kiko non credo molto a quel grafico, inoltre fa riferimento a versioni passate.
Vedendo un pò di documentazione, il DAO è molto più potente Doctrine, non ha un oggetto form per la gestione degli input e la validazione ma è tutto fatto tramite la classe model, e al momento non ho travato nessuna info riguardo alla gestione del routing.
Non sò forse mi sto sbagliando, sicuramente è da provare per un miglior parere.

# - postato da MaiNick - 09 Febbraio 2011 - 16:37

9

@MaiNick

che i form siano legati al model mi pare ovvio, o intendevi un’altra cosa?
Doctrine è un ORM, mentre yii utiliza Active Record come rails (gestendo in automatico le relazioni tra tabelle creando gli oggetti collegati SOLO quando vengono richiesti).
cmq c’è l’estensione per integrare Doctrine.

http://www.yiiframework.com/do.....rm.builder

http://www.yiiframework.com/do.....ller#route

http://www.yiiframework.com/do.....topics.url

# - postato da markux - 09 Febbraio 2011 - 16:58

10

Io non riesco proprio ad abituarmi ad usare questi framework.

# - postato da Headz - 09 Febbraio 2011 - 22:09

11

bisognerebbe fare un confronto con symfony 2.0, zend 2.0 o lithium per un confronto.

tra l’altro esistono miniframework come tilt o slim che sono semplicemente dei mini routercome sinatra.

# - postato da sasuke - 10 Febbraio 2011 - 00:28

12

Il grafico fa riferimento a Symfony 1.2 quando la versione consigliata è la 1.4 (ed uscirà, a breve, la 2.0 completamente riscritta), Zend 1.7 quando l’ultima è la 1.11, e gli altri non seguo lo sviluppo ma di sicuro anche loro sono andati avanti; Oltretutto è il solito discorso che un confronto su un esempio di tipo “Hello World” è assolutamente ridicolo, e la premessa “volevamo vedere quanto poco overhead aggiunge” non regge minimamente, visto che se decido di usare un framework l’overhead lo do per scontato ci sia, e non è un fattore chiave.

Per il resto, dopo un’occhiata veloce al codice salta all’occhio un coding standard abbastanza brutto ed un generale utilizzo di metodi statici (non proprio il massimo), accesso diretto alle variabili $_POST senza un minimo filtraggio, e la parte M del MVC regge a malapena il confronto con un Propel o Doctrine 1, figuriamoci con Doctrine 2.
Symfony tutta la vita, dai…

# - postato da Davide - 10 Febbraio 2011 - 00:35

13

#Davide

è proprio questo il bello di Yii: ti da a disposizione tutto quello che serve per implementare qualsiasi cosa. Quasi tutte le classi implementano CComponent permettendo la gestione di Behavior, Eventi, Filter per tutte le classi!

Questa struttura da modo allo sviluppatore di adattare l’applicazione corrente al dominio applicativo e non come succede ad esempio con symfony, ma anche con molti altri, il viceversa: cioè è costretto a seguire il comportamento/workflow del framework per non andare a modificare classi del suo core.

Ovviamente non succede sempre, ma quando succede…

spero di aver chiarito la differenza e perchè secondo me non è come gli altri framework.

# - postato da markux - 10 Febbraio 2011 - 06:59

14

in generale concordo con Davide: conosco molto bene Zend Framework e abbastanza bene Symfony, e non mi sembra che le proposte di Yii siano particolarmente innovative o originali, anzi..i due framework citati mi sembrano decisamente più avanti, basta vedere le componenti per il mobile e il cloud..

@markux
qualsiasi framework degno di questo nome a mio avviso dovrebbe dare la possibilità di personalizzare il workflow, la struttura interna ecc, chiaramente senza modificarne il core: a quanto mi risulta, almeno in ZF, questo non solo è possibile, ma anche gestito in maniera chiara, pulita e relativamente semplice :)

# - postato da Marco Lecce - 10 Febbraio 2011 - 08:56

15

Finalmente qualcuno se n’e’ accorto :)

# - postato da antonio lorusso - 10 Febbraio 2011 - 10:04

16

@sasuke stiamo parlando comunque di prodotti ben diversi: Yii != Titl (o Slim)

# - postato da Kiko - 10 Febbraio 2011 - 11:37

17

@markux
Io avendo utilizzato symfony1 per molto tempo, non mi sono mai sentito limitato. E se guardi a com’è fatto Symfony2, che utilizza dalla radice del framework la Dependency Injection, allora vedrai che Yii letteralmente sbianca a confronto…

# - postato da Davide - 10 Febbraio 2011 - 13:14

18

@Marco Lecce

concordo su ZF, ma preferisco usarlo come repository di librerie piuttosto che come framework base (nota: odio i nomi delle classi con gli _ , è più forte di me :) )

@Davide
prima di incontrare Yii, la mia scelta sarebbe stata symfony2 se non avesse avuto coem requisito php 5.3.
La DI con Yii è realizzata tramite i behavior da file di configurazione oppure dalla classe stessa: come vedi per ogni cosa in Yii hai sempre la scelta di come implementare un feature, ed io trovo che sia la massima libertà creativa che può avere uno sviluppatore ;) per i non creativi che hanno bisogno di uno schema da seguire consiglio altri framework :D

# - postato da markux - 11 Febbraio 2011 - 09:41

19

In parte avete detto tutti cose giuste e mi sento di sottoscrivere l’ultimo commento di @markux!

# - postato da Kiko - 11 Febbraio 2011 - 10:57

20

Ci sono piani di fare il porting di yii su php 5.3? Ci sarà un pieno supporto per namespace, closure e static late binding?

Lo sviluppatore di Yii è lo stesso che ha creato prado, una libreria che utlizza le view state come asp.net. E’ un framework oop scritto veramente molto bene

# - postato da sasuke - 11 Febbraio 2011 - 18:54

21

@sasuke
è in gestazione yii 2.0, che userà PHP 5.3+, che sarà completamente (o quasi) riscritto, che non avrà supporto all’indietro.

Il paragone del grafico riporta quelle versioni di Zend e Symfony perché è un grafico vecchio, penso ci fossero quelle versioni quando è stato realizzato, non quelle usate adesso.

Symfony2 non ha senso inserirlo in questo confronto, in primis perché è una preview release, in secundis perché basandosi su PHP 5.3 è una generazione avanti (infatti è un rewrite completo).

# - postato da Maramaldo - 18 Febbraio 2011 - 02:42

22

Ecco un confronto tra framework, molto più aggiornato su Symfony 2.0 oppure su Photon pubblicato oggi su questo blog.

# - postato da MaiNick - 28 Febbraio 2011 - 12:10

23

Grazie @MaiNick, ottimi riferimenti.

# - postato da Kiko - 01 Marzo 2011 - 12:49

24

Premetto che mi sono avvicinato da poco ai framework. Ho comunque optato per yii dopo aver letto le recensioni su html:

http://php.html.it/articoli/le.....rformance/

Dalle recensioni a confronto, sembra il migliore

# - postato da Giancarlo - 21 Dicembre 2011 - 14:09

Inserisci il tuo commento:





(puoi usare i seguenti tag HTML per formattare il testo -
a href, b, i, br/, p, strong, em, ul, ol, li, blockquote, pre):

 

Anteprima del commento