Re: [RFC] Conditional INI support

From: Date: Fri, 15 Feb 2008 08:36:28 +0000
Subject: Re: [RFC] Conditional INI support
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-35509@lists.php.net to get a copy of this message
Hi Marcus, I think that the idea of ini preprocessing is great, however I would like little bit different syntax. a) I think we don't need (1) ternary support at all, as (2) if-elif=else-endif may do the same. b) I think usage of square brackets is not a good idea, because they are commonly used to divide ini files into sections. Why not to use C syntax? (#if...) c) We can use just "value" insted of ${value} in conditions. d) I would prefer not to use '.' in the variables name. It will allow to distribute conditional ini files, and use them with old PHP versions after manual preprocessing (using cpp). e) We don't need to define special names, we can use internal PHP constants. #if PHP_VERSION == '5.2.0' setting = 1 #elif PHP_VERSION == '5.3.0' setting = 2 #else setting = 3 #endif What do you think? (we can probably use similar preprocessor for PHP scripts too) Thanks. Dmitry. Marcus Boerger wrote:
Hello PHPlers, attached is a patch against 5.3 that brings three feature additions to INI parsing. 1) Ternary support for values setting = ${value?1:2} If ${value} evaluates to true then setting becomes 1 otherwise 2. This cannot be nested and only works for values, not for setting names. 2) if-elif-else-endif support [IF ${value} == 1] setting = 1 [ELIF ${value} == 2] setting = 2 [ELSE] setting = 3 [ENDIF] This can be nested. Alternatively we could use apache style syntax that looks more like XML. The reason I used square brackets is that this is the smallest change to normal INI files. 3) Add more values to INI parsing, namely: ${php.version} = 50300 ${php.debug} = 0 ${php.zts} = 0 ${php.sapi} = CLI Any comments? Best regards, Marcus ------------------------------------------------------------------------ This body part will be downloaded on demand.


« previous php.internals (#35509) next »