Namespace in PHP 6

di Gianni Tomasicchio - 14 luglio 2007

php.gifDopo tante discussioni sull'argomento finalmente l'annuncio ufficiale: in PHP6 ci saranno i namespace. Di cosa si tratta? I namespace sono una caratteristica frequentemente implementata dei linguaggi di programmazione ad oggetti e PHP evidentemente iniziava a sentirne la mancanza. I namespace servono a raggruppare in maniera gerarchica i nomi delle classi e delle funzioni in modo da evitare l'uso di nomi lunghi per organizzare grosse collezioni di codice (come Progetto_Database_MySQL_connector).

Per definire l'appartenenza di una funzione o una classe ad un namespace basta porre all'inizio del file che li contiene l'istruzione namespace Nome::del::namespace.

<?php 
namespace Nome::Del::Namespace;

class NomeClasse {
}

function nome_funzione() {
}
?>

Per riferirsi ad una funzione o classe contenuta in un namespace quindi è possibile sia utilizzare il nome completo Nome::del::namespace::Nome_classe, sia utilizzare la direttiva import che serve a definire degli alias:

<?php 
require 'Nome_classe.php';
// Nome::Del::Namespace diventa semplicemente Namespace::
import Nome::Del::Namespace;
// Nome::Del::Namespace::NomeClasse diventa semplicemente MiaClasse
import Nome::Del::Namespace::NomeClasse as MiaClasse;

// nome completo
$x = new Nome::Del::Namespace::Nome_classe();

// alias
$y = new Namespace::NomeClasse();
Namespace::nome_funzione();
$z = new MiaClasse();
?>

 

Effettua l'accesso o registrati per inserire un commento