PHP - namespaces

 

Namespace-ul este una din modificarile cu care a venit PHP 5.3, functie care, din pacate la alte limbaje de programare era de ceva timp. Crearea acestei functii, este pentru a ajuta programatorii, sa defineasca mai multe clase cu acelasi nume, fara sa apara erori. 

De exemplu, daca vrei sa folosesti o clasa de utilizatori, numita Users, iar tu trebuie sa creezi alta, care sa utilizeze tot tabela de utilizatori, numele ei ar trebui sa fie tot Users insa acest fapt nu se putea, pana sa existe functia Namespace.

Un exemplu, ca sa se inteleaga mai bine ar fi urmatorul:

 - presupunem ca avem urmatoarele fisiere:

general/users.php

<?php
namespace General;
class users{
    static function showUsers(){
        echo"Bogdan";   
    }   
}
?>

 

myProject/users.php

<?php
namespace MyProject;
class users{
    static function showUsers(){
        echo"Adi";   
    }   
}
?>

index.php

<?php
include 'general/users.php';
include 'myProject/users.php';
\General\users::showUsers(); // aici se afiseaza Bogdan
\MyProject\users::showUsers(); // aici se afiseaza Adi
?>

Asemanator se face si pentru afisarea unei constante sau functii:

presupunem ca fisierul exista fisierul pathToFile/test.php care contine urmatoarele declaratii:
 

const MYCONST = ''Constanta mea';
function MyFunction() {
return ''functia mea';
}

afisarea constantei si a functiei din fisierul test.php se face astfel:

echo \pathToFile\MYCONST ."<br />";
echo \pathToFile\MyFunction() . "<br />";

Un tutorial mai pe larg la ce inseamna namespaces gasesti la adaresa:
http://daylerees.com/php-namespaces-explained

0 comentarii

Spune-ti parerea!

Cod validare
Categorii Arhiva
Metode pentru a-ti securiza surseleAdaugat pe 20 Mai 2010

Valabilitate domeniiAdaugat pe 16 Februarie 2011

Clasa php pentru editare imagineAdaugat pe 19 Aprilie 2013

Am nevoie de un webmaster pentru 2 site-uriAdaugat pe 12 Octombrie 2009

Sunt fericitul posesor al unui Pentax km 18-55mmAdaugat pe 13 Martie 2009

preg match si preg_match_all - exempleAdaugat pe 18 Martie 2014

Composer - packet managerAdaugat pe 01 Martie 2016

Anatomia unui landing page si cum sa maresti rata de conversieAdaugat pe 14 Decembrie 2010

Optimizare site, pe care o poate face si clientulAdaugat pe 30 Septembrie 2010

Testare siteAdaugat pe 09 Martie 2009