Edit report at http://bugs.php.net/bug.php?id=32734&edit=1
ID: 32734 Comment by: rasmus at mindplay dot dk Reported by: php at koterov dot ru Summary: Support for #line pragma, as in C and Perl Status: Open Type: Feature/Change Request Package: Feature/Change Request Operating System: all PHP Version: 5.0.4 Block user comment: N Private report: N New Comment: This feature is badly lacking to support many good, modern patterns, which could broaden the scope and use of PHP in general. View-engines as mentioned, but not least aspect-oriented programming, code generation and meta-programming in general, and cross-language-compilation from other languages. Microsoft's C# compiler has an implementation of this feature that could be referenced: http://msdn.microsoft.com/en-us/library/aa691102%28v=VS.71%29.aspx I would propose extending the existing syntax for execution directives, as implemented by the declare keyword: http://www.php.net/manual/en/control-structures.declare.php It might looks like this: // start of file declare(source='test.c#20'); something(); declare(source='test.c#30') { other(); more(); } // end of file Consistent with the way declare otherwise works - the first declare-statement in this example changes the error-reporting for all of the following statements in that file, while the second declare-statement changes the error reporting within the brackets. I think this idea should be taken into serious consideration, as it has the potential to open up the world of PHP to entirely new forms of development. Previous Comments: ------------------------------------------------------------------------ [2005-04-17 08:47:01] php at koterov dot ru Description: ------------ C, C++ and Perl support the folowing feature: // start of file #line 20 "test.c" something #line 30 "test.c" other // end of file If error is generated into code "something", it is reported as error "in test.c on line 20" - NOT on line 3! For code "other" - "in test.c on line 30". The same Perl code example: ### start of file #line 20 "test.c" warn "something"; #line 30 "test.c" warn "other"; ### end of file Result is: something at test.c line 20. other at test.c line 30. Unfortunately PHP does not support this useful feature, and because of that any template engines with pre-compilation (e.g. Smarty) make the life not so pleasant as it could be. Do you plan to add #line feature in future versions of PHP? Programmers need it very much! ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=32734&edit=1