rfc:tostring_exceptions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
rfc:tostring_exceptions [2019/04/30 13:27] – Text tweaks and move to under discussion nikicrfc:tostring_exceptions [2019/06/05 10:20] – Accepted nikic
Line 2: Line 2:
   * Date: 2019-04-30   * Date: 2019-04-30
   * Author: Nikita Popov <nikic@php.net>   * Author: Nikita Popov <nikic@php.net>
-  * Status: Under Discussion+  * Status: Accepted
   * Target Version: PHP 7.4   * Target Version: PHP 7.4
   * Implementation: https://github.com/php/php-src/pull/3887   * Implementation: https://github.com/php/php-src/pull/3887
Line 9: Line 9:
  
 Throwing exceptions from ''%%__toString()%%'' is currently forbidden and will result in a fatal error. Throwing exceptions from ''%%__toString()%%'' is currently forbidden and will result in a fatal error.
-This makes it dangerous to call arbirary code inside ''%%__toString()%%'' and makes its use as a+This makes it dangerous to call arbitrary code inside ''%%__toString()%%'' and makes its use as a
 general API problematic. This RFC aims to remove this restriction. general API problematic. This RFC aims to remove this restriction.
  
Line 31: Line 31:
 </PHP> </PHP>
  
-However, the sentiment in past discussions on this topic has been to not relax this restriction+In fact, Symfony [[https://github.com/symfony/symfony/blob/1c110fa1f7e3e9f5daba73ad52d9f7e843a7b3ff/src/Symfony/Component/Debug/ErrorHandler.php#L457-L489|uses this loophole]] to work around the current limitation. Unfortunately this relies on the ''$errcontext'' parameter, which is going away in PHP 8. 
 + 
 +Despite this, the sentiment in past discussions on this topic has been to not relax this restriction
 until we have performed a comprehensive audit of string conversions across the codebase. This until we have performed a comprehensive audit of string conversions across the codebase. This
 has been done in the attached implementation [[https://github.com/php/php-src/pull/3887|pull request]]. has been done in the attached implementation [[https://github.com/php/php-src/pull/3887|pull request]].
Line 97: Line 99:
 ===== Vote ===== ===== Vote =====
  
-Allow exceptions from ''%%__toString()%%'' in PHP 7.4? Yes/No.+Voting started 2019-05-22 and ends 2019-06-05. 
 + 
 +<doodle title="Allow exceptions from __toString() in PHP 7.4?" auth="nikic" voteType="single" closed="true"> 
 +   Yes 
 +   No 
 +</doodle>
  
rfc/tostring_exceptions.txt · Last modified: 2019/06/14 12:12 by theodorejb