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

Reply via email to