wiki:Documentation/Fr/Administrateur/ClassesPhp

Version 8 (modified by azerttyu, 6 years ago) (diff)

Name changed from Fr/Documentation/Administrateur/ClassesPhp? to Documentation/Fr/Administrateur/ClassesPhp

Classes PHP d'AlternC

Le bureau virtuel d'AlternC, situe dans /var/alternc/bureau, comprend 2 dossiers principaux (le premier MONTRE les pages et le formulaire, le second FAIT les changments correspondants) :

admin/ Ce dossier contient des fichiers .php. Ces fichiers sont essentiellement de la presentation en HTML, des formulaires, mais ils ne contiennent AUCUN code php ayant un EFFET sur le systeme. Ceci permet de separer le code de la presentation et d'adapter facilement le bureau HTML (ce dossier) sans toucher la partie fonctionnelle (le suivant)

class/ Ce dossier contient les scripts php qui APPLIQUENT les modifications au systeme, et RETOURNENT les informations aux pages web. AUCUN ECHO ne se trouve dans ces pages, et aucune notion de formattage n'y est presente. Voir ci-dessous le detail de ce dossier :

class/config.php Ce fichier charge les classes php4 (includes), definit les variables globales (nom de la machine, adresse ip etc.), et instancie les classes.

/class/functions.php Ce fichier contient tout un jeu de fonctions php couremment utilisees. Toute fonction devant pouvoir etre utilisee par plusieurs classes differentes, voire par les fichiers de /admin, peut se trouver ici. Dans la mesure du possible on prefere mettre une fonction dans la classe qui l'utilise particulierement.

class/m_????.php Ces fichiers sont les scripts php de definition des classes php4 de manipulation du bureau virtuel. Chaque fichier definit une classe et une seule, de nom ????. Chaque classe peut utiliser les autres, et permet de gerer une partie du bureau. Ainsi, la classe m_dom gere les domaines DNS de chaque membre, et utilise m_quota pour verifier qu'un membre peut ou ne peut pas effectuer telle ou telle operation en fonction de son quota. De fait, les classes sont tres liees.

La liste des classes implementees a ce jour est la suivante : (en gras le nom de la classe, qui correspond a la variable globale utilisee dans les sources)

  • admin Cree / Modifie / Detruit les comptes de l'hebergeur. Utilisable par les super-admin uniquement.
  • bro Classe de gestion des fichiers d'un heberge (browser). Utilisee par le gestionnaire de fichiers integre.
  • dom Gere les noms de domaines DNS heberges sur le serveur. Pilote bind et les classes sous-jacentes (mail, ftp...)
  • err Classe de gestion d'erreur. Cette classe traduit, affiche et traite les erreurs, et log les appels systemes dans /var/log/alternc/bureau.log
  • ftp Gere la table mysql contenant les comptes ftp et les sous-comptes de heberges
  • mail Gere les comptes emails, les alias, et les mails de domaines. Pilote ldap
  • mem Gere les parametres d'un heberge (en lecture, sauf le mot de passe) et gere la session lorsqu'il se connecte sur le bureau virtuel
  • sympa Gestion des listes de diffusion, via les programmes en C setuid-sympa
  • mysql Gestion de la base mysql de l'utilisateur, cree/modifie/detruit la base et le mot de passe mysql de l'heberge et lui donne acces a phpmyadmin
  • quota Gestion des quota des heberges, quota de services ou d'espace disque.
  • stats Gestion des jeux de statistiques webalizer de l'heberge, et des logs apache bruts disponibles
  • hta Cette classe permet la Gestion des dossiers web proteges (par .htaccess .htpasswd)
  • mailman Cette classe gere la creation / destruction des listes de discussion utilisant le logiciel mailman 2.1

Documentation des fonctions standard

ToDo: Ceci devrait etre documente dans le code. C'est l'API, est ca devrait etre auto-genere du code php avec des outils comme phpdoc ou doxygen.

Sur le bureau, chaque classe peut(doit) implementer un certain nombre de fonctions d'evenement telles que :

  • alternc_quota_check() qui verifie (recalcule) les quotas de l'utilisateur courant sur la classe appelee
  • alternc_add_domain($dom) qui signale l'ajout d'un domaine sur le compte du membre
  • alternc_del_domain($dom) qui signale la suppression d'un domaine sur le compte du membre.
  • alternc_del_member() qui signale la destruction du membre courant.
  • alternc_quota_names() qui doit retourner un ou plusieurs noms de quotas (si plusieurs = array)
  • alternc_add_mx_domain($dom) qui signale qu'un domaine vient de passer en hebergement "mx"
  • alternc_del_mx_domain($dom) qui signale qu'un domaine vient de passer en hebergement "non-mx"
  • EXPERIMENTAL : alternc_export() qui demande l'export en xml sous le nom <classname></classname> de toutes les informations du membre. Si un ou plusieurs fichiers sont a inclure (donnees de mail par exemple), ils doivent etre retournes en parametres dans la suite du tableau array(xml,filename1,filename2 ...)

Chaque classe dispose des informations suivantes

  • $GLOBALS[[cuid] = uid de l'utilisateur sur lequel la fonction appellee doit agir
  • $mem->user[[*] = parametres des tables membres et local pour cet utilisateur courant
  • la fonction $mem->su($uid) permet de changer temporairement d'utilisateur effectif
  • la fonction $mem->unsu() permet de revenir a l'utilisateur initial du systeme (reellement connecte).