Lib Loader - Inclure vos classes et fichiers en toute facilité

Petit nouveau ! | 1 Messages

21 mars 2015, 15:46

Bonjour à tous.

Voici une librairie créée par mes soins qui vous facilitera la vie dans vos projets.

Quel est son utilité :

Elle inclue vos classes lors de leur instanciation en fonction des configurations définies dans le fichier "library/autoload.php" ou ultérieurement dans votre code et rend la manipulation des dossiers d'inclusions plus simpliste.

L'exploitation de pattern tel que le concept MVC facilite la production de vos sites web, pour ce faire vous devrez créer de nombreuses classes CORE (fonctionnalité) et METIER (dépendance).

En choisissant une certain structure des espaces de nom des classes en fonction de leurs répertoires, vous pouvez facilement simplifier le code.

Admettons que mon Framework MVC charge des classes CONTROLLER dans différents endroit.

path/to/app/front/controllers et path/to/app/back/controllers ...

La solution est très simple :

Code : Tout sélectionner

use \Component\Loader\Autoload; use \Component\Loader\Autoload\NamespaceName; $ClassLoader = \Component\Loader\Autoload::ClassLoader(); $ClassLoader->AutoloadFactory() ->set(new NamespaceName('Controller\Front', path/to/app/front/controllers) ->set(new NamespaceName('Controller\Back', path/to/app/back/controllers);
Structure des classes :

# path/to/app/front/controllers/MaClassController.php

Code : Tout sélectionner

namespace \Controller\Front; class MaClassController { // do something }
Tous vos classes CONTROLLER des deux répertoires ajoutés sont prêtes à être instanciés sans les inclure au préalable. Mais également tous les classes situées dans les sous répertoires, tant qu'elles respectent une structure reconnue et référencé en tant qu'interface AutoloadInterface.

Structures reconnues :

PSR-0 : http://www.php-fig.org/psr/psr-0/fr/
PSR-4 : http://www.php-fig.org/psr/psr-4/fr/

La classe NamespaceName est équivalant au PSR-4

Interface d'auto inclusion (AutoloadInterface) :

Composer
ClassMap
NamespaceName
PsrZero
PsrFour

Le lien Github :
https://github.com/orenx22/Loader

Le lien Github exemple :
https://github.com/orenx22/Loader/tree/ ... est/Loader

Le lien de téléchargement Github :
https://github.com/orenx22/Loader/archive/master.zip

Si le post vous plait, n’hésitez pas à donner vos commentaires. En fonction du nombre d'intéressés, je ferai une suite pour une exploitation CMS (BlogPost) avec le moteur de template Twig, une base de données MongoDB et quelques packages made in composer.

Bon suite.