> Then why is absolutely everything in the current RFC optional and 
> configurable to the Nth degree?

It's one handler: set_escape_handler() (N=1)

Currently, every framework has it's own methods for escaping. To get this 
together, set_escape_handler() is a good choice, similar to set_error_handler().

> OK, so I can dynamically redefine the same syntax to mean different 
> things at different times, within the same application. I'm not entirely 
> sure that's a particularly good thing.

It's the same thing with set_error_handler(), set_exception_handler(), 
spl_autoload_register(), error_reporting(), etc., this concept is proven to 
work.

> In my opinion, they are central to the feature, not an optional extra.

maybe you can join the rfc and provide the implementation?

Regards
Thomas


Rowan Collins wrote on 24.07.2016 19:41:

> On 24/07/2016 18:06, Thomas Bley wrote:
>>> It's not that difficult to write a static analyser that detects
>>> instances of "<?=" not followed by "h(" or "e(" or whatever.
>> <?* and <?= are same for all applications, h() is user-defined. So you need 
>> to
>> write a different analyzer for every application if you use h() or e().
> 
> This argument is only valid if the RFC includes an implementation, not 
> just a syntax. As currently proposed, not even the syntax would be the 
> same for all applications, as part of it is hand-waved as up to whoever 
> writes the escape callback.
> 
> 
>>> Surely the feature gets most of its value from what you *don't* need to
>>> do - which is why I think it's bizarre that the current version doesn't
>>> even have a built-in HTML escaper at all.
>> I think it's no problem to have a follow-up rfc defining some default
>> escapers.
> 
> In my opinion, they are central to the feature, not an optional extra.
> 
> 
>>
>>> It's not possible for multiple frameworks or libraries to declare
>>> different escape handlers in your proposal, either.
>> not sure I get your point?
>>
>> public function render($template) {
>>    set_escape_handler(['SomeClass', 'methodName']);
>>    ob_start();
>>    include $template;
>>    $content = ob_get_clean();
>>    restore_escape_handler();
>>    return $content;
>> }
> 
> OK, so I can dynamically redefine the same syntax to mean different 
> things at different times, within the same application. I'm not entirely 
> sure that's a particularly good thing.
> 
> 
>>> You could equally say, "with <?=e()?> you have to define an e()
>>> function". The main effort is remembering to use the right syntax, which
>>> you have to do either way.
>> the thing here is that people can use <?= without e() and save coding time.
> 
> People can use <?= instead of <?* and save learning the difference. Lazy 
> people will still be lazy.
> 
> Yes, there's a very slight effort saved by it being shorter, but at the 
> cost of a minimum PHP version, an extra thing to learn, etc.
> 
> 
>> Security cannot be optional, see.
> 
> Then why is absolutely everything in the current RFC optional and 
> configurable to the Nth degree?
> 
> Regards,
> 
> -- 
> Rowan Collins
> [IMSoP]
> 
> 
> -- 
> 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

Reply via email to