On Apr 9, 2012, at 9:16 AM, Tom Boutell <t...@punkave.com> wrote: > It sounds like you are proposing to gradually kill the use of PHP for > templating entirely, which I don't think is something people would > vote for.
I'm not saying that at all. I'm saying that PHP code should be clearly separated from template code. <?php should be optional at the start of the file and IF a keyword should be added it should be for templates and short-tags. 99% of modern PHP code is going to be classes that start with <?php and omit the ending ?> (since PHP 5 due to how easy it is for white space to end up on the tail end of a file). this is even the case with procedural code. Half the PHP frameworks out there have their own template engine because they can do a lot more than what short tags offer. Example: Twig offers template inheritance. Introducing a keyword for PHP code without the <?php tag is impractical. It makes much more sense to have a keyword for templates. For non-template code the starting <?php tag should always work as it has before for backwards compatibility. The difference is you cannot use ?> and text before the opening <?php tag is either ignored or throws an error. > I sometimes use perfectly good older frameworks that do use > .php files for templating in a reasonable way, and I'm one of the > advocates for migrating away from starting everything with <?php. I > would have to vote against it myself. And those files can be included with something like require_template or you can turn off the option in the ini file. The point is in EITHER MODE a php file that starts with <?php will work as it did before. The new mode would just disallow you to break out of PHP code with ?>. > There's no reason to kill good > code that passes its tests just because it uses inline HTML. I won't > even know I have that code in my project from some third party library > until I find out the hard way. No, just no. (: I'm not trying to kill anything. In fact what I'm proposing would be a smooth transition to something that is already done. The difference is at some point you won't be able to do this: <?php class Object { public function output() { ?> Print me! <?php } } I cringe every time I see this. There is no excuse since we have here/nowdocs. For people that use PHP as a template there can be other options. I'm not totally against a new keyword, but I am against a new keyword for including normal PHP code. It just doesn't make sense. No matter what you name it (require_code, require_file, require_path) it's damned confusing. If you did it the other way around its much clearer: require_template. With require_template you're also free to expand template functionality while keeping code clearly separated. > I did propose one new keyword, but by proposing one keyword with a > future-friendly syntax instead of four new keywords I'm attempting to > help with the pollution problem. It's not as much as adding a keyword as it is what keyword you're adding. I hope the way I've explained things makes sense. Luke > > On Mon, Apr 9, 2012 at 11:43 AM, Luke Scott <l...@cywh.com> wrote: >> Tom, >> >> As I've said before I don't think new keywords are the answer. They >> will just pollute the language even further. >> >> I also don't think an ini setting is a bad thing either. It is often >> used in PHP as a way to transition from way of doing things to >> another. First you introduce it with it being off by default, then on >> by default, then deprecate the old behavior. It's quite normal in >> PHP's history. >> >> In another email someone mentioned doing two rfcs. In both cases are >> we talking about removing <?php ? Because it's become somewhat >> confusing to keep track of what is being talked about. If that is the >> case, continue reading. >> >> I would prefer the starting <?php tag be optional rather than removed. >> Just explicitly forbid the ending ?> tag and treat text before the >> opening <?php tag differently. Perhaps ignore it (rather than print) >> or throw an error. >> >> That is at least how I would prefer the "code" mode as most >> non-template files only start with <?php. It allows for backwards >> compatibility. >> >> If you must add keywords it should be something like require_template >> NOT require_code/require_file. Templates are the exception, not the >> norm. >> >> Luke Scott >> >> On Apr 8, 2012, at 9:32 AM, Tom Boutell <t...@punkave.com> wrote: >> >>> I have written an RFC proposing backwards-compatible support for >>> source files without an opening <?php tag: >>> >>> https://wiki.php.net/rfc/source_files_without_opening_tag >>> >>> This RFC is not yet listed at https://wiki.php.net/rfc. I am not sure >>> what the requirements are to get it added to the "Under Discussion" >>> session and get the ball rolling formally. Please enlighten and I'll >>> do whatever is required. >>> >>> Thanks! >>> >>> -- >>> Tom Boutell >>> P'unk Avenue >>> 215 755 1330 >>> punkave.com >>> window.punkave.com >>> >>> -- >>> PHP Internals - PHP Runtime Development Mailing List >>> To unsubscribe, visit: http://www.php.net/unsub.php >>> > > > > -- > Tom Boutell > P'unk Avenue > 215 755 1330 > punkave.com > window.punkave.com > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php