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