| 
<?phprequire_once (__DIR__ . '/../anyem.utils/IAnyemConfigReader.php');
 
 /**
 * Description of AnyemConfigReader
 *
 * @author Anis.Halayem
 */
 class AnyemConfigReaderImpl implements IAnyemConfigReader {
 private $_config_a = array ();
 
 public function __construct($file) {
 $this->loadConfig($file);
 }
 private function loadConfig ($file) {
 $cfg_line_s = ''  ;
 if (!is_file($file)) {
 throw new Exception(sprintf("can not find this file: %s", $file));
 }
 
 $f_cfg = fopen ($file, 'r') ;
 if (!$f_cfg) {
 throw new Exception($file);
 }
 while ( $cfg_line_s = fgets ($f_cfg)) {
 if (
 (
 (strpos (trim ($cfg_line_s), self::CFG_COMMENT) !== FALSE) &&
 (strpos (trim ($cfg_line_s), self::CFG_COMMENT) == 0)
 ) ||
 (strlen (trim ($cfg_line_s)) == 0)
 ) {                                                                                                     // donc c'est une ligne commentaire
 continue ;
 }
 $tokens_a = explode (self::CFG_DELIMITER, $cfg_line_s);
 if ($tokens_a === FALSE) {
 continue ;
 }
 
 $this->_config_a[trim ($tokens_a[0])] = trim ($tokens_a[1]) ;
 if (count ($tokens_a) > 2) {
 $this->continueReading($tokens_a[0], $tokens_a);
 }
 }
 }
 
 public function readConfig ($param, $default = NULL) {
 if      (!isset($this->_config_a[$param])) { return $default; }
 else                                       { return $this->_config_a[$param] ; }
 }
 
 private function continueReading ($param, $tokens_a) {
 for ($i = 2 ; $i < count ($tokens_a) ; $i++) {
 $this->_config_a[trim ($param )] += self::CFG_DELIMITER + trim ($tokens_a[i]);
 }
 }
 }
 |