On Mon, Apr 16, 2012 at 3:55 PM, Arvids Godjuks <arvids.godj...@gmail.com>wrote:
> 16 апреля 2012 г. 22:02 пользователь Kris Craig <kris.cr...@gmail.com>написал: > >> On Mon, Apr 16, 2012 at 10:31 AM, Rick WIdmer <vch...@developersdesk.com >> >wrote: >> >> > On 4/16/2012 3:31 AM, Arvids Godjuks wrote: >> > >> >> That's sad really, to be honest. >> >> I wonder if people even use this: >> >> >> >> echo include 'foo.bar', 'baz'; >> >>> >> >> >> > Probably not, Try it! you get: >> > >> > 1baz >> > >> > It actually works more like >> > >> > echo (include "foo.bar"), 'baz'; >> > >> > than >> > >> > >> > echo include( "foo.bar"), 'baz'; >> > >> > >> > >> > More important include doesn't currently allow multiple parms: >> > >> > include "foo.bar", 'baz'; >> > >> > Parse error: syntax error, unexpected ',' in bla.php on line xx >> > >> > >> > >> > >> > Rick >> > >> > >> > >> > -- >> > PHP Internals - PHP Runtime Development Mailing List >> > To unsubscribe, visit: http://www.php.net/unsub.php >> > >> > >> I'll reiterate my position that I'm not ready to bring my RFC to a vote; >> and even if I was, the rules wouldn't allow it. In fact, unless I'm >> mistaken, none of the RFCs have met the 2-week minimum requirement yet, so >> no vote can take place at this time. But I do think we're making >> progress, >> so I would ask for a little extra patience from the peanut gallery for >> now. =) >> >> To Arvids' point, I'm definitely leaning in that direction, but I'd like >> to >> hear a little bit more from anyone who believes a different approach would >> be better. If nobody speaks-up, I'll just assume that we have consensus >> on >> that point and add it to the RFC. >> >> Regarding include/require, I agree that any BC break would be extremely >> minimal. In the 10+ years I've been developing PHP, I don't think I've >> ever once seen somebody include multiple scripts on a single line (I >> wasn't >> even aware that such a thing was allowed). So if it does pose a change, >> I'd be surprised if any existing scripts would be affected. And since >> this >> is a major version increment we're talking about here, I think a small >> amount of allowance can be made for low-impact BC breakage IMHO. >> >> How about we just keep the parentheses optional and comma-seperate the >> arguments? For example, the require syntax could look like this: >> >> require[(] $script_filename, $script_type = PHP_SCRIPT_TYPE_NORMAL [)]; >> >> Possible values for $script_type: >> >> PHP_SCRIPT_TYPE_NORMAL (0x01) >> >> - If the included file contains PHP code, parse it. >> >> >> PHP_SCRIPT_TYPE_TAGLESS (0x02) >> >> - Code is assumed to be PHP throughout the script. The <?php tag throws >> >> E_NOTICE and the ?> tag throws E_RECOVERABLE_ERROR. >> >> >> PHP_SCRIPT_TYPE_STACK (0x04) >> >> - The $script_type is applied to all child scripts of the one being >> included. >> - Question : Would anyone see value in adding an override constant that, >> >> while not recommended, allows the developer to apply a different >> $script_type somewhere deeper in the stack? Personally this doesn't >> sound >> useful to me, but I'd be willing to put it in if enough of you wanted >> it. >> >> >> PHP_SCRIPT_TYPE_CODE_FILE (PHP_SCRIPT_TYPE_NORMAL & >> PHP_SCRIPT_TYPE_TAGLESS) >> >> - The entire script is assumed to be PHP code and is parsed accordingly. >> >> >> >> PHP_SCRIPT_TYPE_CODE_STACK (PHP_SCRIPT_TYPE_NORMAL & >> PHP_SCRIPT_TYPE_TAGLESS & PHP_SCRIPT_TYPE_STACK) >> >> - The entire script and all its child scripts (i.e. its "stack") are >> >> assumed to be PHP code and parsed accordingly. >> >> >> What do you think? >> >> --Kris >> > > I think there is no need for that many constants and types of inclusion. > Just a PHP_SCRIPT_TYPE_NORMAL and PHP_SCRIPT_TYPE_CODE will suffice (the > later just expects the <?php at the very beginning of the file, like a > header, and no other ?> or <?= or <?php through the file). The KISS > principle still applies, and it should be kept that way. Too many options > and you end up with people abusing that on purpose with reasoning "Because > I can, f**k everybody else!" (it's a "pleasure" to work with such people). > I don't like the idea of removing the <?php tag at all, because it will > mess up the syntax highlighting everywhere and annoy people that copy the > plain code without the <?php and get it not recognized as a valid source > code. > Restricting it to just those two is a non-starter, period. It would unravel the compromise solution that has been worked out where three types exist. And I think a bitwise constant is the most logical approach. Keep in mind that scalability is a potential factor as well. It's possible that, at some point in the future, new ideas may emerge that add even more options to script inclusion, in which case having a flexible bit constant would allow this to scale without having to add additional arguments or other needless complexities. In this case, more constants means more flexibility for the developer IMHO. --Kris