Classe php de gestion des fichiers de configuration(.ini)

Soyez le premier à donner votre avis sur cette source.

Vue 6 425 fois - Téléchargée 1 181 fois

Description

suite au développement d'une classe de gestion des licences pour mes différents projets,
je me suis retrouvé en train d'écrire ce code afin de récupérer les infos nécessaires à la validation à distance des licences attribuées à chaque client.
Cette classe permet non seulement de lire un fichier de configuration, mais aussi d'y écrire (ou modifier une valeur), ou de suprimer un ou plusieurs éléments sans écraser celle déjà existantes.
A l'ajout d'un élément dont la section n'est pas indiquée, il placée sous une section "root"(elle est créée si elle n'existe pas encore) et la relecture de cet élément reste transparente pour l'utilisateur:


EXAMPLE D'UTILISATION
<?php  

/*provenant du formulaire*/  
$licence = array(   
  'software'=> 'Iriven MVC System', // Application Name,  
  'version'=> 1.04, // Application Version  
  'copyright'=> '© Iriven France', // you can limit the key to per domain  
  'username'=> 'mon client', // you can limit the key to per user name or compagny  
  'uniqid'=> 1025, // add if any (user id)  
  'domain'=> 'monclient.com', // you can limit the key to per domain  
  'expiration'=> '1390389563', // [time()+(30*24*3600)]; (30 days) you can limit the key to per expiration time  
  'algorithm'=>'md5',  
  'serial'=>'736CC-AFB84-9B6C0-65252-6C107',//by key generator  
  'salt'=>pack('H*', md5(time())),  
  'lastvalidation' => 98745612 // default: time(), execution du script pour la 1ere fois  
);  
$ini = new initool('./licence.ini');  
$ini->set('licence',$licence); //with section  
$test = array('test1'=>'my tester1','test2'=>'my tester2','test3'=>'my tester3');     
$ini->set($test); //no section   
$ini->set('repo','centos'); //no section   
$ini->set('linux','repo','fedora'); //with section  

echo $ini->get('test1').PHP_EOL;  

echo $ini->get('test2').PHP_EOL;  

echo $ini->get('test3').PHP_EOL;  

echo '<pre>';  
print_r($ini->get('licence'));  
echo '</pre>';  

echo '<pre>';  
print_r($ini->get());  
echo '</pre>';

Codes Sources

A voir également

Ajouter un commentaire Commentaires
jordane45 Messages postés 36609 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 8 décembre 2022 342
Modifié par jordane45 le 18/11/2014 à 23:00
Merci de bien vouloir éditer la description de ta source pour y ajouter les balises de code (la coloration syntaxique).
Informations disponibles ici : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

EDIT : je m'en occupe pour cette fois.
cs_christophedlr Messages postés 262 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 26 juillet 2022 4
18 nov. 2014 à 22:54
Ton code est intéressant, par contre juste une idée d'optimisation : ne fait pas aveuglément confiance à PHP dans la lecture/écriture automatique des fichiers INI. En effet, pour lui "", 0, et false sont les même valeurs. C'est assez gênant s'il faut écrire un true/false par exemple dans le fichier INI (ou lire), car du coup tu peux avoir des valeurs incohérentes s'il te faut bien un true/false (par exemple) et non un "" ou 0.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.