<?php 
 
/* 
 * This file is part of Chevere. 
 * 
 * (c) Rodolfo Berrios <rodolfo@chevere.org> 
 * 
 * For the full copyright and license information, please view the LICENSE 
 * file that was distributed with this source code. 
 */ 
 
declare(strict_types=1); 
 
use function Chevere\Message\message; 
use Chevere\Throwable\Exceptions\RuntimeException; 
use Chevere\ThrowableHandler\ThrowableHandler; 
use function Chevere\Writer\streamFor; 
use Chevere\Writer\StreamWriter; 
use Chevere\Writer\Writers; 
use Chevere\Writer\WritersInstance; 
use function Chevere\Xr\registerThrowableHandler; 
 
foreach (['/../', '/../../../../'] as $path) { 
    $autoload = __DIR__ . $path . 'vendor/autoload.php'; 
    if (stream_resolve_include_path($autoload)) { 
        require $autoload; 
 
        break; 
    } 
} 
 
new WritersInstance( 
    (new Writers()) 
        ->withOutput( 
            new StreamWriter( 
                streamFor('php://stdout', 'w') 
            ) 
        ) 
        ->withError( 
            new StreamWriter( 
                streamFor('php://stderr', 'w') 
            ) 
        ) 
); 
set_error_handler( 
    ThrowableHandler::ERROR_AS_EXCEPTION 
); 
register_shutdown_function( 
    ThrowableHandler::SHUTDOWN_ERROR_AS_EXCEPTION 
); 
set_exception_handler( 
    ThrowableHandler::CONSOLE 
); 
registerThrowableHandler(true); 
 
throw new RuntimeException( 
    message: message("Ch bah puta la güeá"), 
    code: 12345, 
    previous: new Exception( 
        message: "A la chuchesumare", 
        code: 678, 
        previous: new LogicException( 
            message: "Ese conchesumare", 
            code: 0, 
        ) 
    ) 
); 
 
 |