Tutoriels

Installation du framework Premiers pas Mises à jour du framework Gérer les utilisateurs Gestion des textes et des langues Gestion des erreurs Créer ses classes & librairies

Classes & librairies

DSM.class.php DSMUser.class.php DSMMessage.class.php Libraire LJ Librairies internes

Créer ses classes et librairies

Librairies de fonctions Classes Classes avec namespaces

Créer ses classes et librairies

Nous allons ici aborder la création de classes personnalisées, de classes dans un namespace, de librairies de fonctions. Nous verrons comment le framework les gère pour vous faciliter le développement.

Librairies de fonctions

Une librairie de fonctions est un fichier rassemblant une quantité de fonctions PHP utilisables partout dans votre code. Le framework en ajoute par défaut 2 : la librairie dsm.lib et la librairie kimiprod. Ces librairies regroupent une grande quantité de fonctions PHP utilisées par le moteur ou pour des utilisations plus occasionnelles. Pour en savoir plus sur ces librairies, rendez-vous sur la page Librairies internes.

Comment créer ou ajouter sa propre librairie de fonctions ?

La création ou l'importation d'une librairie est très simple. Il faut respecter 2 conditions :

  • Votre librairie PHP doit être placée dans le dossier resources/libs
  • Votre librairie doit avoir comme extension *.lib.php. Par exemple la librairie kimiprod a pour nom de fichier kimiprod.lib.php.

Si votre librairie remplit ces deux conditions, elle sera automatiquement ajoutée par le framework avant l'ajout du premier header de la page.

Classes

Si votre site web devient un minimum complexe, vous allez vouloir créer vos propres classes PHP. Pour que vous puissiez utiliser les classes que vous avez créé sur votre site, il faut que celles-ci soient ajoutées à vos pages. Pour cela, vous pouvez créer un header dans le dossier dev et faire vos require/include. Ou alors vous pouvez laissez le framework le faire pour vous grâce à spl_autoload.

Comment créer ou ajouter ses propres classes ?

Comme pour les librairies de fonctions, l'import automatique d'une classe que vous avez créé se fait sous plusieurs conditions :

  • Votre classe PHP doit être placée dans le dossier resources/class
  • Votre classe PHP doit avoir comme extension *.class.php. Par exemple la classe PHPMailer a pour nom de fichier PHPMailer.class.php.

Si votre classe remplit ces deux conditions, elle pourra être automatiquement importée à votre page. L'import se fait uniquement si dans votre code la classe apparaît (via la création d'une instance de la classe ou l'appel d'une de ses méthodes statiques). Si la classe n'est pas utilisée dans le code, elle ne sera pas importée !

Classes avec namespaces

Lorsque vous faîtes appel à une classe qui se trouve dans un namespace différent (lors d'une instanciation ou un appel de méthode statique), le framework va tenter d'ajouter un fichier qui n'existe pas. Prenons l'exemple de la classe File de la librairie LJ, cette dernière se trouve dans le namespace LJ. Lorsqu'on essaie d'instancier un objet de cette classe :

$file = new LJ\File();

Le framework va tenter d'importer le fichier :

require('resources/class/LJ\File.class.php');

Comme vous vous en doutez, ça ne peut pas fonctionner.

Comment créer ou ajouter une classe d'un autre namespace ?

C'est à vrai dire assez simple, il suffit de suivre une procédure différente des classes classiques :

  • Dans le dossier resources/libs, créez un dossier du nom de votre namespace.
  • Mettre le fichier contenant la classe du namespace différent dans le dossier créé dans resources/libs et lui donner le nom de la classe avec l'extension *.class.php.

Par exemple, pour la classe LJ\File (qui fait donc partie du namespace LJ), il faut mettre la classe dans le fichier File.class.php, ce fichier est ensuite mit dans le dossier resources/libs/LJ.