Skip to content

Instantly share code, notes, and snippets.

@cfaria
Last active February 2, 2024 20:44
Show Gist options
  • Save cfaria/7eb83ca2853cb062fd7f6365c9bd6de2 to your computer and use it in GitHub Desktop.
Save cfaria/7eb83ca2853cb062fd7f6365c9bd6de2 to your computer and use it in GitHub Desktop.
Prevent E_NOTICE, E_WARNING, E_DEPRECATED errors WSOD in Sage 10
<?php
namespace App\Providers;
use Roots\Acorn\ServiceProvider;
class ThemeServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->booted(
function($app) {
set_error_handler(function ($level, $message, $file = '', $line = 0, $context = []) {
// Check if this error level is handled by error reporting
if (error_reporting() & $level) {
// Return false for any error levels that should
// be handled by the built in PHP error handler.
if ($level & (E_WARNING | E_NOTICE | E_DEPRECATED)) {
echo "<br />\n";
echo "<b>ERROR</b> [$level] $message<br />\n";
echo " Fatal error on line $line in file $file";
echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
echo "Aborting...<br />\n";
return false;
}
// Throw an exception to be handled by Laravel for all other errors.
throw new \ErrorException($message, 0, $level, $file, $line);
}
});
}
);
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
}
}
@hadronix
Copy link

🙏 🙌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment