On Wed, Nov 19, 2014 at 4:10 PM, Andrea Faulds <a...@ajf.me> wrote:
>
>> On 19 Nov 2014, at 15:07, Alain Williams <a...@phcomp.co.uk> wrote:
>>
>> It is a problem trying to maintain code for different versions of PHP,
>> especially where there are syntax differences. It would be really nice to 
>> have
>> some sort of conditional compilation as in C. Eg:
>>
>> It would be nice to be able to do something like:
>>
>> try {
>> ....
>>
>> # if PHP_VERSION_ID > 50500
>> } catch(PDOException $e) {
>>  ....
>> } finally {
>>   ... tidy up
>> }
>> # else
>> } catch(PDOException $e) {
>>  ... tidy up not quite where I want it
>>  ....
>> }
>> # endif
>>
>> OK: '#' might not be a good character since it is start of comment, but that 
>> is
>> the idea.
>
> You could actually run the C preprocessor on your PHP codebase if you wanted!
>
> But yes, I can see there might be a need for conditional compilation. To a 
> certain extent we already have this, in that you can conditionally define 
> functions and classes. Perhaps this could be extended? Conditionally defining 
> methods?
>
>     class FooBar {
>         if (PHP_VERSION_ID < 50000) {
>             public function FooBar() {
>                 $this->__construct();
>             }
>         }
>
>         public function __foobar() {
>
>         }
>     }
> --

[Off Topic]

It's been a long time I've been thinking about having a compile-time
preprocessor integrated into our parser/compiler stack.
I would design it just to support #migration tokens, and nothing more.
This would really ease migrations, with no runtime impact at all, and
the possibility to use any syntax, knowing it will get compiled, which
is not possible nowadays.
Like the C preprocessor. And it wouldn't be that hard to add to our
codebase, as there should not be any runtime impact, just a two-pass
parser

Anyone interested can contact me :-)

[/Off Topic]


Julien.P

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to