On Dec 22, 2010, at 4:38 PM, Mathias Grimm wrote:
> People always will want more, but some features are nice.
> for C/C++ programmers, macro is on of the best things to make thing work
> every where.
> 
> its possible to create a IDE macro, but the native php feature will be good.
> template engines can de wrap this functionality too.
> is just like a variable:

I've long wished for preprocessing in PHP. It would be semi-trivial to plug in 
libcpp from GCC or llvm's preprocessing library, if licensing weren't an issue. 
If it is, then a reasonable homegrown implementation of C's preprocessor 
semantics, or at least a subset of them, isn't that difficult.

Piping through cpp has two major problems:
1) It's an extra runtime step. Slower, more error-prone, not always an option 
(shared hosting anyone?).
2) cpp doesn't understand # comments, single-quoted strings, heredocs, etc. 
Many PHP scripts therefore produce annoying/confusing errors.

Some issues with PHP-native preprocessing:
- Are eval() strings subject to it? At what stage, outer script processing or 
the eval string?
- #include/#import versus include()/require() - confusing
- Does preprocessing take place outside whatever PHP tags are active?

> On Wed, Dec 22, 2010 at 7:08 PM, Scott MacVicar <sc...@macvicar.net> wrote:
>> I really dislike this, what about resolving orders, then people will want
>> undef, then ifdef with conditions.
>> 
>> The language doesn't need to introduce anything that makes it more complex
>> to use.
>> 
>> - Scott
>> 
>> On 22 Dec 2010, at 11:55, Mathias Grimm <mathiasgr...@gmail.com> wrote:
>>> I Just want a simple replace-on-the-air to avoid spend time writing more.
>>> 
>>> 
>>> On Wed, Dec 22, 2010 at 5:43 PM, Stas Malyshev <smalys...@sugarcrm.com
>>> wrote:
>>> 
>>>> Hi!
>>>> 
>>>> 
>>>> I want to request a C/C++ feature that i think is good.
>>>>> 
>>>>> MACRO
>>>>> 
>>>> 
>>>> You know that you could write:
>>>> <?php
>>>> #define PF private function
>>>> #define SCOPE_CLASS(x) class MyProject_ ## x
>>>> 
>>>> 
>>>> class UseMacro
>>>> {
>>>>  PF preSave($object)
>>>>  {
>>>>     //...
>>>>  }
>>>> 
>>>> }
>>>> 
>>>> SCOPE_CLASS(Internal)
>>>> {
>>>> 
>>>> }
>>>> 
>>>> And then run it through CPP (gcc -Mcpp -E - - < in.php > out.php) and
>> get
>>>> all the macros processed?
>>>> --
>>>> Stanislav Malyshev, Software Architect
>>>> SugarCRM: http://www.sugarcrm.com/
>>>> (408)454-6900 ext. 227
>>>> 
>> 

-- Gwynne


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

Reply via email to