Di JEROEN VAN DER MEER
Tradotto molto liberamente da http://jero.net/articles/php6
Mentre gran parte dei web server utilizzano la versione 4 di Php, gli sviluppatori stanno già pianificando e sviluppando la sesta major release. Bè, diamo un’occhiata a quello che li sta tenendo così impegnati…
SUPPORTO UNICODE
Quando stai sviluppando un sito, difficilmente pensi alla codifica del set di caratteri (character encoding); al massimo ti occupi di informare il browser di che character encoding debba utilizzare per leggere e renderizzare i testi della pagina, problema che può essere facilmente risolto impostando un valore di default nel file di Apache .htaccess.
Nonostante questo, se stai sviluppando un’applicazione, la codifica dei caratteri può causare problemi, ed è qui che verrà in aiuto, in Php 6, il nuovo supporto Unicode, grazie al quale lo Zend Engine potrà automaticamente codificare e decodificare input e output dello script facendo in modo che sia il database, sia il browser del client ricevano i dati nel formato che necessitano; tutto questo senza l’utilizzo di funzioni extra per la conversione da un charset ad un altro.
PULIZIE DI PRIMAVERA
Da quasi 15 anni molta gente utilizza Php, e questo ha inevitabilmente portato alla proliferazione di molte cattive abitudini; il risultato? Lentezza nell’esecuzione degli script e parecchie falle di sicurezza. Talvolta addirittura lo sviluppatore non è nemmeno consapevole di questo pericoloso utilizzo di Php.
Insomma, sto parlando delle register_globals (http://php.net/manual/en/security.globals.php), delle magic_quotes (http://php.net/manual/en/security.magicquotes.php) e della modalità safe_mode (http://php.net/manual/en/features.safe-mode.php).
Sono tutte e tre un incubo per gli sviluppatori Php, e sicuramente non farà dispiacere sapere che nella sesta major release verranno completamente rimosse dal linguaggio.
Inoltre non potremmo più scrivere $HTTP_COOKIE_VARS, ma solo la versione abbreviata $_COOKIE.

NOVITA’ DAL FRONTE CACHE
Il sistema di cache APC (Alternative PHP Cache), in uso già dal luglio 2003, diventerà il sistema di caching di default in Php 6.
La cache è un ottimo mezzo per migliorare le performance della vostra applicazione Php, per questo la richiesta di un meccanismo del genere è sempre stata forte.
E il team di Php, includendo nel core della nuova major release APC ( http://pecl.php.net/package/apc ), sembra proprio essere andato incontro alle richieste dei suoi utenti.
OOP: ARRIVANO I NAMESPACE
La versione 5 di Php aveva completamente rivoluzionato l’approcio alla programmazione orientata agli oggetti, ma i cambiamenti non finiscono qui.
In Php 6 verranno infatti introdotti i namespace che, se non lo sapeste (non tutti utilizzano C++…), permettono di raggruppare variabili, funzioni e oggetti sotto una determinata parola chiave astratta.
Questo dà la possibilità allo sviluppatore di utilizzare lo stesso nome più volte quando nomina una variabile, una funzione o un oggetto, purchè chiaramente essi appartengano a namespace diversi.
Qui trovi un interessante tutorial C++ che descrive il funzionamento dei namespace: http://cplusplus.com/doc/tutorial/namespaces.html
ESTENSIONE CHE VA, ESTENSIONE CHE VIENE
Php in realtà non è altro che una collezione di estensioni riunite insieme nel linguaggio che conosciamo. Le estensioni cambiano, e lo stesso vale anche per le “collezioni”.
Prendete per esempio l’estensione XML Writer, utilissima per scrivere i file XML. La sua sorella, XML Reader, era stata già aggiunta nel nucleo principale di Php 5.1 e, con Php 6, toccherà finalmente lo stesso destino anche a XML Writer.
Altra modifica al nucleo centrale ( core distribution ) è la rimozione del supporto per le espressioni regolari Ereg: nella versione di default di Php 6 troverete infatti solamente le regex in stile Perl PCRE (preg_match, preg_replace…).
Se volete utilizzare le vecchie Ereg, non vi resta che abilitare la relativa estensione.
L’estensione per riconoscere il media type dei files attualmente in uso (mime_magic) verrà sostituito da una sistema più efficace, che verrà addirittura integrato nella core distribution.
CONCLUSIONI
Abbiamo elencato parecchie novità interessanti.
Non penso che Php 6 presenti numerose nuove caratteristiche, ma piuttosto ritengo che sia una revisione, quasi una “pulizia” delle versione precedenti, e che allo stesso presenti notevoli miglioramenti alle funzioni già presenti. Ed è già un bel passo avanti!
Insomma, scorrendo questa lista (la versione completa è disponibile qui: http://php.net/~derick/meeting-notes.html ), non vedo che miglioramenti!
RISPOSTA DI MADERO
Sono d’accordo con te sul fatto che dei sani ripulisti o, più in generale, le ottimizzazioni delle funzioni già presenti siano qualcosa di utile e necessario, ma siamo sicuri che sia una buona mettersi a definire la sesta major release quando la quinta non si è ancora completamente radicata?
Personalmente non solo conosco parecchie realtà in cui Php 4 viene preferito a Php 5, ma addirittura situazioni in cui estende la sua egemonia niente poco di meno che Php 3! Pensate che il primo meeting di coordinamento tra gli sviluppatori per Php 6 è avvenuto addirittura nel novembre 2005, quando la versione 5 era, su server condivisi in produzione, un’esclusiva di alcuni hoster!
Le esigenze cambiano quotidianamente e secondo me potevano quindi aspettare a delineare con tanta precisione i major update da applicare: va bene l’Unicode, i namespace e la nuova Cache, ma che senso ha togliere la safe_mode e le magic_quotes? Io non utilizzo nè l’una nè l’altra, ma è giusto che sia lo sviluppatore, consapevole degli eventuali rischi, a decidere se utilizzarle o no, non il team di Php.
A me personalmente, invece che modifiche di forma tipo $HTTP_COOKIE_VARS -> $_COOKIE, sarebbero più utili, integrati nella core distribution, una classe per produrre facilmente contenuti semantici, un sistema semplificato per rispondere a richieste da un’interfaccia AJAX e soprattutto una migliore gestione degli errori.___
La lezione di Oilproject che ti suggeriamo oggi è Il Cimitero di Praga. Il Risorgimento come complotto.
Tags: OpenSource, Php, Programmazione, Sicurezza

10 Responses for "Dentro il cantiere di Php 6"
Io non penso che monterò PHP6 sui miei server, il motivo è semplice il supporto verso il basso è sempre meno considerato.
Sono concorde nel dire che il lavoro che si sta facendo è fantastico, ma eliminare il supporto alle erg ad esempio, mandere a farsi benedire programmi che le usano, programmi come ad esempio WordPress.
Dubito non tanto che WordPress si adegui, anzi avrebbe tutto il vantaggio a farlo se gli hoster passassero in massa dalle attuali versioni alla 6, ma no, dubito fortemente che gli utenti (clienti) dei vari hoster passino con facilità da una versione della loro applicazione preferita ad una superiore, solo perché il loro hoster cambia il supporto al linguaggio che le supporta, anzi i clienti cambieranno immediatamente hoster, cercandone uno che abbia ancora il supporto alla vecchia versione di PHP.
Penso che il problema di PHP sia il PHP, sette nni di PHP4 hanno fatto sì che si consolidassero i pessimi metodi di programmazione che hanno portato alla genesi di montagne di wrapper nel codice, di funzioni che di fatto fanno quasi la stessa cosa (vedi il caso ereg e preg_) infarcendo il codice di montagne di funzionalità inutili che solo ora tentanto di eliminare.
Oramai è tardi, ma non solo, adesso che il PHP5 cominciava a prendere piede e finalmente, adesso ci dicono che cambierà tutto di nuovo, non va bene, non può funzionare così.
M.
Io consiglio di concentrarsi su PHP 5 e basta.
@PHP fun
Si ma quando arriverà il 6?
E poi, voglio dire, è anche giusto dire la propria opinione… Php dopo tutto è il nostro linguaggio e le sue sorti non dovrebbero sembrarci così estranee.
sarebbe una buona idea, forse, scrivere una sorta di lettera/petizione con i miglioramenti che veramente necessitiamo nel php (anche se io ancora sto a livelli elementari
), e facendo presente al team anche il fatto delle release….in fondo l’open source si base anche su questo, anche se a quei livelli e’ un pochito diverso
P
@koteko:
sono d’accordo, e secondo me ci hanno anche già provato.
Sarà anche open, ma dobbiamo ricordarci che c’è sempre l’osso duro Zend dietro.
Ed a decidere alla fine sono le persone elencate all’inizio di
http://www.php.net/~derick/meeting-notes.html
secondo me il safe mode e magic quote e il registery global finiranno per implementarlo ancora, per non perdere la compatibilità verso il basso (la maggior parte degli utenti di php sono hoster)( un php molti siti / utenti) per quanto riguarda erg è attivabile come libreri non standard (come la libreria mysql e mysqli)
ciao a tutti gabry
@Gabryfan82:
Si è attivabile, ma un utente non può andare a cercarsi gli hoster che lo abbiano attivato.
-
In fondo è la pigrizia che domina, cambiare ereg() in eregi() non è complicato e tanto meno lungo. Notepad++ viene incontro a questa situazione.
Secondo me il problema principale è che non si può compilare il codice.
E questa è una noia notevole, sia per un fatto di prestazioni, sia per un fatto di vendita.
E non parlo di finte compilazioni.
Lo staff del php si dovrebbe mettere in testa che deve rilasciare la parte del suo prodotto che compila.
Secondo c’è il problema della complessità… cioè se arrivo ad una complessità simile al c… che senso ha usare il php che è almeno 8 volte più lento, tanto vale che uso il c e si sviluppano una serie di librerie per facilitare il lavoro.
Terzo il web è fermo sul php 4 perchè mancano le persone che capiscono la differenza tra php4 e php5, quindi non riuscendo a trarre vantaggio dall’utilizzo del modello ad oggetti del 5 continuano ad usare il 4.
In genere è difficile trovare persone che capiscono il 4 figuriamoci il 5.
Poi diventa necessaria una crescita del php nel momento in cui il browser si evolve realmente.
A me sembra che i browser nelle meccaniche profonde siano piuttosto statici .
Non so magari sbaglio.
Rufio72
In merito alla discussione sul linguaggio “open” direi che non sono assolutamente d’accordo.
L”Ognuno fa come cacchio gli pare” o cercare di inseguire le necessità “spot” degli sviluppatori sono cose pessime.
Il risultato? Un linguaggio di serie B per molti versi.
Ok, php non è Java e non vuole esserlo, ma deve anche decidere da che parte stare adesso (e dalla versione 5 sembra l’abbia deciso).
Se diventare un vero linguaggio object-oriented, licenziare parecchia gente a Zend, fornire un framework SERIO diverso dall’attuale (e possibilmente sparare a Rasmus Lerdorf che ogni tanto tira fuori un surrogato del pattern MVC in stile procedurale) e fregarsene della compatibilità.
Oppure rimanere quel linguaggio ibrido che è adesso, avvalersi della popolarità che ha sempre avuto e tirare a campare.
Ma il tutto senza andare dietro all’opinione degli sviluppatori che, spesso, per una questione culturale, non ci mettono un minimo di riflessione sia nel loro codice, sia nelle richieste che pongono al loro linguaggio.
Questa mia risposta arrivano addirittura 2 anni dopo la scirttura del post, ma credo che NULLA sia cambiato sul fronte php4,5 e 6… motivo?? il popolo dei php developer e’ secondo me vecchio mentalmente e non riesce a comprendere la potenza dell’uso delle classi, dei namespaces ecc.. e soprattutto non comprende che un linguaggio che IMPONGA vincoli è un linguaggio molto ma molto piu’ sicuro da utilizzare (sicurezza, bugs,…) nonche’ molto piu’ veloce per quanto riguarda lo sviluppo.
Si pensi a Flex… che sviluppa usando il Flex builder va veramente molto veloce nello sviluppo e gli errori commessi sono molti di meno…
..questo è ovviamente il mio modesto parere
Lascia un commento