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.
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php