A PHP Exception class to use as a base for exception handling in well structured web apps.
composer require treehousetim/exception
After installing, create your own class that extends treehousetim\exception\Exception
.
Each namespace area of your code should implement its own Exception.php
Each Exception class should create class constants for relevant codes.
Exceptions are thrown with a variable length parameter list with the code as the very last parameter.
To throw an exception, you can build up your message with multiple parameters. Place your code as the last parameter.
Exception messages are concatenated from the parameters with PHP_EOL
as the glue.
throw new Exception(
'This',
'is',
$lib->getErrorText(),
'bad',
Exception::normalError
);
<?php namespace treehousetim\somefancylibrary;
class Exception extends \treehousetim\exception\Exception
{
const normalError = 0;
const shinyError = 1;
const matteError = 2;
const sphericalError = 3;
}
<?php namespace treehousetim\somefancylibrary;
class burgerifier
{
public function zorkAdventure()
{
throw new Exception(
'This',
'is',
$lib->getErrorText(),
'bad',
Exception::normalError
);
}
}