Hello everyone!

I recently pushed changes that eliminated E_EXCEPTION and allows an exception 
type to be provided for what were fatals in PHP, while still falling back to an 
E_ERROR if necessary.

Since more specific Error classes can be thrown, I'd like to propose the 
following additions to the Error tree of exceptions: AccessError and 
IdentifierError.

AccessError - Thrown when trying attempting to call a public, private, or 
abstract method, when statically calling a non-static method, or trying to use 
self::, parent::, or static:: outside of a class.
IdentifierError - Thrown when referencing an undefined function, method, class, 
constant, etc.

I’ve created a patch that implements the exceptions above as well as updating 
all the related tests: https://github.com/trowski/php-src/tree/error-subclasses 
<https://github.com/trowski/php-src/tree/error-subclasses>

This patch also broadens the usage of TypeError to include conditions such as 
calling a method on a scalar, passing a value that does not specify a callback 
when one is expected, and various other conditions based on an incorrect type 
that otherwise are throwing plain Error objects.

This patch introduces no functional changes, only more specific types of Errors 
are thrown from conditions that were already throwing Error objects.

I was hoping this could be merged before beta 1, though I’m not sure if the 
time table is too tight.

Cheers,
Aaron Piotrowski

Reply via email to