Quantcast
Channel: Méthylbro Développeur Web PHP - Mot-clé - classe
Viewing all articles
Browse latest Browse all 5

PHP : Enregistrer et stocker des variables de configuration

$
0
0

Gestion des variables de configuration en POO avec PHPAprès avoir commencé à vous parler des variables de configuration avec PHP lundi, billet que j'ai illustré mercredi avec un exemple de classe de configuration en php, nous allons continuer aujourd'hui sur le même sujet.

Comment résoudre de façon générique l'enregistrement et le stockage de ces variables de configuration ?

Maintenant que nous avons vu comment gérer et manipuler des variables de configuration avec PHP, nous allons pouvoir nous pencher sur les différentes façon possible d'enregistrer et de stocker ces valeurs.

Comme je l'ai expliqué lors de l'introduction, le nombre de méthodes et d'outils possible pour enregistrer ses valeurs est potentiellement illimité. Ainsi donc, au lieu de créer une classe qui nous limiterais uniquement à l'une de ces méthodes, nous allons utilisée une interface commune pour chacune de ces méthodes. Libre ensuite au développeur de choisir la méthode de son choix parmi celles que nous allons voir, ou tout simplement d'écrire la sienne.

Chaque méthode de stockage sera représenté par sa propre classe dans le script. Cependant afin d'unifier et normaliser ces classes, nous utiliserons une interface ainsi qu'une classe abstraite.

L'interface iConfigurationHandler

Commençons par l'interface ; que nous appellerons iConfigurationHandler. Les méthodes qui seront communes à tous nos moyens de stockages seront load() et save().

La première, load(), nous permet de lire et placer en mémoire l'ensemble des données de configuration. Tandis que comme son nom l'indique la seconde, save(), enregistrera la liste des variables en mémoire en utilisant le système de stockage concerné.

interface iConfigurationHandler {
public function save();
public function load();
}

La classe abstraite ConfigurationHandler

Nous allons décider que, en plus d'implémenter l'interface iConfigurationHandler (et donc de proposer obligatoirement les méthodes load() et save()) nos différents moyens de stockage seront également manipulables avec certaines méthodes et propriétés communes.

Pour cela nous devrons donc définir une classe mère, qui sera abstraite (et donc non directement instanciable) que nous appellerons ConfigurationHandler.

abstract class ConfigurationHandler {
protected $data=Array();
protected $auto;
public function __construct($auto) {}
public function __destruct() {}
public function setData() {}
public function delData() {}
public function getData() {}
}

Au final donc, nos objets permettant le stockage de nos variables de configuration devront à la fois hériter de la classe ConfigurationHandler mais également implémenter les méthodes de l'interface iConfigurationHandler.

Modifications sur la classe Configuration

Il faut maintenant signaler à la classe Configuration qu'elle soit déléguer son stockage des données à une classe de type ConfigurationHandler.

Voici donc les modifications à apporter sur cette dernière :

class Configuration implements IteratorAggregate, Countable, ArrayAccess {
private $_ConfigurationHandler;
public function __construct(ConfigurationHandler $ConfigurationHandler) {}
public function __set($name, $value) {}
public function __get($name) {}
public function __isset($name) {}
public function __unset($name) {}
public function count() {}
public function getIterator() {}
public function offsetExists($offset) {}
public function offsetGet($offset) {}
public function offsetSet($offset, $value) {}
public function offsetUnset($offset) {}
}

Dans un prochain billet, nous verrons comment utiliser ces classes abstraites et ces interfaces pour créer nos propres méthodes de stockages. D'abord dans un fichier au format .ini, ensuite dans une base de données et enfin au sein des données de session du visiteur.

Lire la suite


Viewing all articles
Browse latest Browse all 5

Trending Articles