Changeset View
Changeset View
Standalone View
Standalone View
src/error/PhutilMethodNotImplementedException.php
- This file was added.
| <?php | |||||
| /** | |||||
| * An exception thrown when a method is called on a class which does not | |||||
| * provide an implementation for the called method. This is sometimes the case | |||||
| * when a base class expects subclasses to provide their own implementations, | |||||
| * for example. | |||||
| */ | |||||
| final class PhutilMethodNotImplementedException extends Exception { | |||||
| public function __construct($message = null) { | |||||
| if ($message) { | |||||
| parent::__construct($message); | |||||
| } else { | |||||
| $caller = idx(debug_backtrace(), 1); | |||||
| if (isset($caller['object'])) { | |||||
| $class = get_class($caller['object']); | |||||
| } else { | |||||
| $class = idx($caller, 'class'); | |||||
| } | |||||
| $function = idx($caller, 'function'); | |||||
| if ($class) { | |||||
| parent::__construct( | |||||
| pht('Method %s in class %s is not implemented!', $function, $class)); | |||||
| } else { | |||||
| parent::__construct(pht('Function %s is not implemented!', $function)); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||