Also, your objection - that 'require_code' is confusing - would most likely be an issue for a handful of people who write autoloaders. Those clean PHP class files are almost always autoloaded.
On Mon, Apr 9, 2012 at 1:22 PM, Tom Boutell <t...@punkave.com> wrote: > I see what you're saying, but you're proposing a new keyword to > include code that does what plain old 'require' does now (assuming > it's not a nice clean class file that is being included). Which means > that valid code today is busted code once this feature comes out. That > seems like a very hard sell. > > On Mon, Apr 9, 2012 at 1:10 PM, Luke Scott <l...@cywh.com> wrote: >> 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 >>> > > > > -- > Tom Boutell > P'unk Avenue > 215 755 1330 > punkave.com > window.punkave.com -- 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