On Sat, 07 Sep 2013 20:08:45 +0400, Michael John Burgess <mich...@mjburgess.co.uk> wrote:

On 07/09/2013 15:41, Levi Morrison wrote:
It looks nicer than Escaper::escapeJs(), Escaper::escapeHtml(), etc.

Any comments?


Please, don't go down this route. You do not want one class to escape all
kinds of data; delegate each type of escaping to its own class:

JavaScriptEscaper->escape();
PhpEscaper->escape();
HtmlEscaper->escape();
HtmlAttributeEscaper->escape();

I should not have to defend this but I am willing to explain in more detail
if someone would like me to.



There doesnt need to be any object-oriented version for this problem. It's a series of pure functions. Wraping them in one or more classes adds nothing.

Michael


Hi,

Wrapping those functions in methods means they can be extended in child classes. So suppose you have some library that takes object of type Spl_Escaper and uses its methods for escaping some data. Now if you will need some additional escaping you just need to make child class for Spl_Escaper and override methods which behavior you need to change. This can't be done with pure functions (in PHP).

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to