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

Soyez le premier à donner votre avis sur cette source.

Vue 4 808 fois - Téléchargée 981 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

cs_christophedlr
Messages postés
257
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
30 mai 2016
4 -
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.
jordane45
Messages postés
26534
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 octobre 2019
316 -
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.

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.