Re: [RFC] Deprecate Backtick Operator (V2)
| From: | Claude Pache | Date: | Tue, 08 Oct 2019 09:00:46 +0000 |
| Subject: | Re: [RFC] Deprecate Backtick Operator (V2) | ||
| References: | 1 2 3 4 5 6 7 8 9 10 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-107409@lists.php.net to get a copy of this message | ||
> Le 8 oct. 2019 à 10:26, Björn Larsson <bjorn.x.larsson@telia.com> a écrit :
>
> Den 2019-10-06 kl. 15:41, skrev Mark Randall:
>> On 06/10/2019 14:18, Reinis Rozitis wrote:
>>> Since `` are used for literal strings (for poorly chosen reserved words as field, table
>>> names (which happens from time to time)) in MySQL (multiline) queries I doubt there is a simple way
>>> to distinguish and replace everything to exec().
>>
>> Hi,
>>
>> As the RFC states, there are already widely used tools available which can do this
>> reliably:
>>
>> https://github.com/FriendsOfPHP/PHP-CS-Fixer
>> backtick_to_shell_exec
>>
>> --
>> Mark Randall
>>
> Even if there are good tools, there is a cost in doing the upgrade
> not just for doing the coding work, but also testing. Assume we
> have legacy code that works perfectly, so what is then the benefit
> to upgrade unless it goes in together with other features?
>
> Motivating to get a small budget to fix this in small company is
> not obvious. The purity of PHP won't fly I think ;-)
>
> r//Björn L
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
When evaluating the _unique_ cost of migrating legacy code, it should be balanced with the
_continual_ cost of keeping the feature. That includes:
* People wondering what that strange syntax does, or, worse, mistaking it with a variation of string
literal.
* Difficulty to search occurrences of
shell_exec.
* People trying to deactivate functions executing external programs (such as
shell_exec) using the "disable_function" ini directive, wondering how to
deactivate the backtick operator (since there is no disable_operator directive).
—Claude