WEB-d Développement Web

PHP, SQL, HTML5, CSS3, Javascript, Mootools, Référencement, SEO, CMS, e-commerce, Apache, Linux, Ubuntu, ...

Le standard PHP PSR-0

Basé sur les espaces de noms, le standard PSR-0 a pour but de standardiser la façon dont les classes d'une librairie sont enregistrées en fichiers et dossiers. Le but final est de permettre de charger automatiquement (avec la fonction __autoload) le fichier correspondant à la classe de n'importe quelle librairie.

Le standard PSR-0 ne comporte en fait que quelques règles simples:

Par exemple, si toutes les librairies se trouvent dans "./libs":


namespace web_d\dframework;

class Classe1
{
    public function hello()
    {
        echo "Hello!";
    }
}
 

Si toutes les librairies externes se trouvent dans "./libs" et respectent le standard PSR-0, il est possible des les charger automatiquement à l'aide la fonction autoload suivante:


function __autoload($className)
{
    $folder = "./libs/";
    $className = ltrim($className, '\\');
    $fileName  = '';
    $namespace = '';
    if ($lastNsPos = strripos($className, '\\')) {
        $namespace = substr($className, 0, $lastNsPos);
        $className = substr($className, $lastNsPos + 1);
        $fileName  = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
    }
    $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';

    include $folder . $fileName;
}
 

On pourra ensuite directement utiliser les classes:


$c = new \web_d\dframework\Classe1();
$c->hello();

use web_d\dframework\Classe1;
$d = new Classe1();
$d->hello();
 

Articles similaires