PHP 5.3 supporterà i namespace

Lunedì 1 Ottobre 2007 - 12:31

di Simone Carletti

PHP e Open Source

Non so voi, ma a me questa notizia suona come una inaspettata novità che accolgo con interesse.

Secondo David Coallier il supporto ai namespace è stato integrato nel ramo di sviluppo di PHP 5.3.

Sempre sul sito di David scopro alcune informazioni su come si presenterà la nuova sintassi.

Ammesso di aver compreso correttamente le modalità con le quali si utilizzeranno i namespace, confesso che trovo un tantino contorta la sintassi:

namespace SomePackage;
const NAME = 'David';

// altro file

import SomePackage as Foo;
echo Foo::NAME;

Avrei preferito qualcosa del tipo

const Foo::NAME = 'David';
echo Foo::NAME;

o meglio ancora

namespace Foo {
    const NAME = 'David';
}
echo Foo::Name;

Come anticipato, potrei anche aver detto completamente una castroneria… non ho trovato documenti molto completi in rete in proposito. Qualcuno di voi ha maggiori informazioni?

Tags:

Categoria: PHP e Open Source | Permalink

Commenti

1

Beh, sarebbe una novità molto gradita, anche se come al solito in ritardo rispetto alla concorrenza..

Meglio tardi che mai!

# - postato da lloyd27 - 01 Ottobre 2007 - 13:04

2

concorrenza? vuoi dire asp?

# - postato da active - 01 Ottobre 2007 - 14:36

3

posso non aver capito nulla?

# - postato da Master FO - 01 Ottobre 2007 - 15:21

4

Ma fatemi capire… vogliono implementare i packages in PHP? Una cosa che Java & Co. fanno praticamente da sempre? Sono sempre più convinto che ci si sta avvicinando il più possibile ad un doppione di qualcosa che c’è da anni e funziona alla grande.

# - postato da Orlando - 01 Ottobre 2007 - 16:17

5

@Orlando … non mi risulta Java abbia i namespaces, piuttosto Java ha i packages che sebbene siano l’implementazione primitiva dei namespaces, restano “primitivi” e non competitivi con questi ultimi (limite a caso: classe A richiede package A)

Questo tipo di namespace mi sembra un meticcio C# e Python (from e import) e secondo me è ottimo poichè unisce la semplicità Python alle potenzialità C# (che sia semplicemente un clone Python in ottica PHP?)

@Simone se vuoi usare lo stesso file invece di un namespace non hai bisogno del namespace, ti crei una classe ed hai già il supporto a quello che secondo te è la migliore delle ipotesi:

class Foo {
	const Name = 'David';
}
echo Foo::Name;

il problema è che questo, con i namespaces, ha ben poco a che fare :-)

# - postato da andr3a - 01 Ottobre 2007 - 19:16

6

i namespaces non ci sono in java ma li trovi in c++ o c# se non sbaglio…

# - postato da Matteo Galli - 01 Ottobre 2007 - 19:24

7

Ciao andr3a,
in effetti il mio esempio non calzava, non ho pensato alle costanti di classe introdotte in PHP 5.

Mettiamola in questi termini… penserei ad una sintassi del tipo

namespace Foo {
class Bar {
}
}

t = new Foo::Bar();

# - postato da Simone Carletti - 01 Ottobre 2007 - 19:55

8

Scusate, non capisco: nella mia visione il php era un prodotto semplice da usare per siti semplici (studenti, siti personali, piccole aziende, …). Qual è il vantaggio di farlo diventare un clone di Java e di dot.net?
Si pensa di guadagnare utenti sul lato dei grandi sistemi aziendali?
E gli utenti che si rivolgevano al php per la sua semplicità che fine faranno?
Oppure si pensa che gli utenti non professionisti non debbano più avere un prodotto di riferimento? e a cosa si rivolgeranno?
Insomma, tutto quel che leggo qui (oggetti, package, …) va certamente bene per il professionista, ma mi sembra che il cambio di paradigma penalizzi gran parte dei precedenti utenti php.
Detto in soldoni, a me l’abbandono del supporto a php 4 suona un po’ integralista, della forma: “ora sì che vi costringiamo a imparare a programmare bene, sennò tanto peggio per voi“.
Non vorrei che questa scelta finisca per essere autolesionista, perdendo una parte significativa della vecchia utenza senza guadagnarne della nuova.
Per evitare di essere mal interpretato: ho imparato a programmare prima della diffusione dei linguaggi strutturati, ma ora utilizzo abitualmente i linguaggi OO, quindi non sto parlando a mio vantaggio: semplicemente secondo me il php aveva un preciso ruolo che con queste innovazioni rischia, con mio dispiacere, di perdersi (oppure non condividete il mio punto di vista sul ruolo di php nel web?)

# - postato da AlPa - 01 Ottobre 2007 - 20:18

9

Quello che io non condivido è il “terrorismo” informatico.
Non è che non appena un linguaggio implementa un’ottica OO lo si deve etichettare clone di Java.
Non è che non appena un linguaggio implementa interfacce o pattern nati con C# o C++ diventa un clone di quest’ultimi.

E’ naturale che un linguaggio di evolva ed integri al suo interno elementi che possano agevolare lo sviluppo.
Il web è cresciuto dai tempi in cui PHP 4 fu rilasciato e inevitabilmente certi aspetti non potevano essere tralasciati.

Quello che noto è semplicemente paura di evolversi, tendenza a credere che avere a disposizione una funzione in più significhi doverla usare a tutti i costi.
Mica nessuno obbliga ad usare i Namespace in PHP, così come nessuno obbliga ad usare le Eccezioni o altri costrutti.
Tuttavia, per chi usa il PHp per qualche cosa in più rispetto a due echo ed un mysql_connect() al giorno questi elementi contribuiscono a migliorare il linguaggio.

Zend Framework non potrebbe esistere senza PHP 5 e, personalmente, non posso più rinunciare al suo Http Client o al suo sistema di gestione delle Uri!

Smettiamola di fare di tutta l’erba un fascio.
Non volete usare oggetti e namespace?!? Non fatelo, ma non siate superficiali nell’affermare che non sono utili o che “non sono da PHP”.
Perchè, cos’è PHP? Il figlio della serva da usare per 4 template ed un print in modo procedurale?!?

# - postato da Simone Carletti - 01 Ottobre 2007 - 20:43

10

Mi associo a Simone, l’abbandono del php4 non è nulla di sconvolgente… i miei siti scritti in php4 di quando non programmavo a oggetti funzionano benissimo in php5.. la vera rivoluzione del php5 è la programmazione a oggetti.. se non la usi non c’è assolutamente nulla di diverso dal php4!!

# - postato da axem - 08 Ottobre 2007 - 17:08

11

Io ritengo che sia veramente importante l’evoluzione.
Attualmente lavoro come Developer presso un’azienda di Pisa e questi hanno 3 server (2 php4 e 1 php5). Questa società continua a voler sviluppare in php4 perchè ritiene più sicuro rispetto a php5, invece io ritengo che non fanno il passo a php5 semplicemente perchè non hanno sviluppatori in grado di farlo. Quando ti abitui a un tipo di linguaggio se non sei una persona come me che ama l’evoluzione per cui stare sempre alle nuove innovazioni, fare il passo a php5 rimane difficile se non impossibile.

Ad’ogni modo php5 ha portato nuova linfa specialmente a persone tipo noi che sviluppiamo a oggetti (cosa che riduce la complessità degli script aumentandone la leggibilità).

# - postato da Namaless - 23 Ottobre 2007 - 14:44

12

Sinceramente avrei preferito qualcosa come

namespace foo{
const A = “foo”;
}

Però fà piacere vedere PHP che comincia a utilizzare i concetti OOP. :)

# - postato da flash.tato - 22 Dicembre 2007 - 14:27

13

quello che secondo me non è chiaro alla maggior parte di “coloro che usano php” è la differenza tra sito web e applicazione web.
PHP è nato come linguaggio semplice e veloce, usato e usabile sopratutto nei siti web di piccola e media complessità; fa risparmiare un sacco di tempo (e quindi denaro) alle aziende che fanno siti di poche pagine, con due connessioni al db, elaborazione dei dati e stampa dei risultati.

Ma per quanto riguarda la costruzione di applicazioni (più o meno) complesse non è il massimo (es: elaborazione complessa di immagini)
Questi piccoli benedetti passi sono necessari alla crescita di php, visto che non è al passo con gli altri suoi “colleghi”, ma non obbligano nessuno a usarli (e quindi non mi spiego come fanno a penalizzare l’utente non professionista, ci sono e basta! sono a disposizione di chi ne ha bisogno e fidati i namespace sono una manna dal cielo! il fatto che ci siano non obbliga nessuno ad usarli (quindi php mantiene la sua leggerezza e velocità), anzi aiuta chi da troppo tempo sta aspettando che il php si adegui agli altri linguaggi!(visto che i namespace mancavano praticamente solo in php e non vedo il perchè gli altri linguaggi dovrebbero averli e noi no) )

Per finire io dico che dovrebbe essere obbligatorio l’abbandono di php4 per il 5 (in attesa del 6(in sviluppo da troppo tempo))
in quanto soffre di alcune debolezze che lo rendono “antiquato” (vedi riscrittura oop php5)
Il fatto di passare al 5 non è un “ora sì che vi costringiamo a imparare a programmare bene, sennò tanto peggio per voi“. ma semplicemente che il 5 ha sostanziose migliorie che il 4 si scorda

# - postato da sonounostrinato - 06 Agosto 2008 - 11:04

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