!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/portfolio.picotech.app/public_html/vendor/spatie/flare-client-php/src/   drwxr-xr-x
Free 29.29 GB of 117.98 GB (24.83%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Flare.php (12.26 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Spatie\FlareClient;

use 
Error;
use 
ErrorException;
use 
Exception;
use 
Illuminate\Contracts\Container\Container;
use 
Illuminate\Pipeline\Pipeline;
use 
Spatie\Backtrace\Arguments\ArgumentReducers;
use 
Spatie\Backtrace\Arguments\Reducers\ArgumentReducer;
use 
Spatie\FlareClient\Concerns\HasContext;
use 
Spatie\FlareClient\Context\BaseContextProviderDetector;
use 
Spatie\FlareClient\Context\ContextProviderDetector;
use 
Spatie\FlareClient\Enums\MessageLevels;
use 
Spatie\FlareClient\FlareMiddleware\AddEnvironmentInformation;
use 
Spatie\FlareClient\FlareMiddleware\AddGlows;
use 
Spatie\FlareClient\FlareMiddleware\CensorRequestBodyFields;
use 
Spatie\FlareClient\FlareMiddleware\FlareMiddleware;
use 
Spatie\FlareClient\FlareMiddleware\RemoveRequestIp;
use 
Spatie\FlareClient\Glows\Glow;
use 
Spatie\FlareClient\Glows\GlowRecorder;
use 
Spatie\FlareClient\Http\Client;
use 
Throwable;

class 
Flare
{
    use 
HasContext;

    protected 
Client $client;

    protected 
Api $api;

    
/** @var array<int, FlareMiddleware|class-string<FlareMiddleware>> */
    
protected array $middleware = [];

    protected 
GlowRecorder $recorder;

    protected ?
string $applicationPath null;

    protected 
ContextProviderDetector $contextDetector;

    protected 
mixed $previousExceptionHandler null;

    
/** @var null|callable */
    
protected $previousErrorHandler null;

    
/** @var null|callable */
    
protected $determineVersionCallable null;

    protected ?
int $reportErrorLevels null;

    
/** @var null|callable */
    
protected $filterExceptionsCallable null;

    
/** @var null|callable */
    
protected $filterReportsCallable null;

    protected ?
string $stage null;

    protected ?
string $requestId null;

    protected ?
Container $container null;

    
/** @var array<class-string<ArgumentReducer>|ArgumentReducer>|ArgumentReducers|null */
    
protected null|array|ArgumentReducers $argumentReducers null;

    protected 
bool $withStackFrameArguments true;

    public static function 
make(
        
string $apiKey null,
        
ContextProviderDetector $contextDetector null
    
): self {
        
$client = new Client($apiKey);

        return new 
self($client$contextDetector);
    }

    public function 
setApiToken(string $apiToken): self
    
{
        
$this->client->setApiToken($apiToken);

        return 
$this;
    }

    public function 
apiTokenSet(): bool
    
{
        return 
$this->client->apiTokenSet();
    }

    public function 
setBaseUrl(string $baseUrl): self
    
{
        
$this->client->setBaseUrl($baseUrl);

        return 
$this;
    }

    public function 
setStage(?string $stage): self
    
{
        
$this->stage $stage;

        return 
$this;
    }

    public function 
sendReportsImmediately(): self
    
{
        
$this->api->sendReportsImmediately();

        return 
$this;
    }

    public function 
determineVersionUsing(callable $determineVersionCallable): self
    
{
        
$this->determineVersionCallable $determineVersionCallable;

        return 
$this;
    }

    public function 
reportErrorLevels(int $reportErrorLevels): self
    
{
        
$this->reportErrorLevels $reportErrorLevels;

        return 
$this;
    }

    public function 
filterExceptionsUsing(callable $filterExceptionsCallable): self
    
{
        
$this->filterExceptionsCallable $filterExceptionsCallable;

        return 
$this;
    }

    public function 
filterReportsUsing(callable $filterReportsCallable): self
    
{
        
$this->filterReportsCallable $filterReportsCallable;

        return 
$this;
    }

    
/** @param array<class-string<ArgumentReducer>|ArgumentReducer>|ArgumentReducers|null $argumentReducers */
    
public function argumentReducers(null|array|ArgumentReducers $argumentReducers): self
    
{
        
$this->argumentReducers $argumentReducers;

        return 
$this;
    }

    public function 
withStackFrameArguments(bool $withStackFrameArguments true): self
    
{
        
$this->withStackFrameArguments $withStackFrameArguments;

        return 
$this;
    }

    public function 
version(): ?string
    
{
        if (! 
$this->determineVersionCallable) {
            return 
null;
        }

        return (
$this->determineVersionCallable)();
    }

    
/**
     * @param \Spatie\FlareClient\Http\Client $client
     * @param \Spatie\FlareClient\Context\ContextProviderDetector|null $contextDetector
     * @param array<int, FlareMiddleware> $middleware
     */
    
public function __construct(
        
Client $client,
        
ContextProviderDetector $contextDetector null,
        array 
$middleware = [],
    ) {
        
$this->client $client;
        
$this->recorder = new GlowRecorder();
        
$this->contextDetector $contextDetector ?? new BaseContextProviderDetector();
        
$this->middleware $middleware;
        
$this->api = new Api($this->client);

        
$this->registerDefaultMiddleware();
    }

    
/** @return array<int, FlareMiddleware|class-string<FlareMiddleware>> */
    
public function getMiddleware(): array
    {
        return 
$this->middleware;
    }

    public function 
setContextProviderDetector(ContextProviderDetector $contextDetector): self
    
{
        
$this->contextDetector $contextDetector;

        return 
$this;
    }

    public function 
setContainer(Container $container): self
    
{
        
$this->container $container;

        return 
$this;
    }

    public function 
registerFlareHandlers(): self
    
{
        
$this->registerExceptionHandler();

        
$this->registerErrorHandler();

        return 
$this;
    }

    public function 
registerExceptionHandler(): self
    
{
        
$this->previousExceptionHandler set_exception_handler([$this'handleException']);

        return 
$this;
    }

    public function 
registerErrorHandler(?int $errorLevels null): self
    
{
        
$this->previousErrorHandler $errorLevels
            
set_error_handler([$this'handleError'], $errorLevels)
            : 
set_error_handler([$this'handleError']);

        return 
$this;
    }

    protected function 
registerDefaultMiddleware(): self
    
{
        return 
$this->registerMiddleware([
            new 
AddGlows($this->recorder),
            new 
AddEnvironmentInformation(),
        ]);
    }

    
/**
     * @param FlareMiddleware|array<FlareMiddleware>|class-string<FlareMiddleware>|callable $middleware
     *
     * @return $this
     */
    
public function registerMiddleware($middleware): self
    
{
        if (! 
is_array($middleware)) {
            
$middleware = [$middleware];
        }

        
$this->middleware array_merge($this->middleware$middleware);

        return 
$this;
    }

    
/**
     * @return array<int,FlareMiddleware|class-string<FlareMiddleware>>
     */
    
public function getMiddlewares(): array
    {
        return 
$this->middleware;
    }

    
/**
     * @param string $name
     * @param string $messageLevel
     * @param array<int, mixed> $metaData
     *
     * @return $this
     */
    
public function glow(
        
string $name,
        
string $messageLevel MessageLevels::INFO,
        array 
$metaData = []
    ): 
self {
        
$this->recorder->record(new Glow($name$messageLevel$metaData));

        return 
$this;
    }

    public function 
handleException(Throwable $throwable): void
    
{
        
$this->report($throwable);

        if (
$this->previousExceptionHandler && is_callable($this->previousExceptionHandler)) {
            
call_user_func($this->previousExceptionHandler$throwable);
        }
    }

    
/**
     * @return mixed
     */
    
public function handleError(mixed $codestring $messagestring $file ''int $line 0)
    {
        
$exception = new ErrorException($message0$code$file$line);

        
$this->report($exception);

        if (
$this->previousErrorHandler) {
            return 
call_user_func(
                
$this->previousErrorHandler,
                
$code,
                
$message,
                
$file,
                
$line
            
);
        }
    }

    public function 
applicationPath(string $applicationPath): self
    
{
        
$this->applicationPath $applicationPath;

        return 
$this;
    }

    public function 
report(Throwable $throwable, callable $callback nullReport $report null, ?bool $handled null): ?Report
    
{
        if (! 
$this->shouldSendReport($throwable)) {
            return 
null;
        }

        
$report ??= $this->createReport($throwable);

        if (
$handled) {
            
$report->handled();
        }

        if (! 
is_null($callback)) {
            
call_user_func($callback$report);
        }

        
$this->recorder->reset();

        
$this->sendReportToApi($report);

        return 
$report;
    }

    public function 
reportHandled(Throwable $throwable): ?Report
    
{
        return 
$this->report($throwablenullnulltrue);
    }

    protected function 
shouldSendReport(Throwable $throwable): bool
    
{
        if (isset(
$this->reportErrorLevels) && $throwable instanceof Error) {
            return (bool) (
$this->reportErrorLevels $throwable->getCode());
        }

        if (isset(
$this->reportErrorLevels) && $throwable instanceof ErrorException) {
            return (bool) (
$this->reportErrorLevels $throwable->getSeverity());
        }

        if (
$this->filterExceptionsCallable && $throwable instanceof Exception) {
            return (bool) (
call_user_func($this->filterExceptionsCallable$throwable));
        }

        return 
true;
    }

    public function 
reportMessage(string $messagestring $logLevel, callable $callback null): void
    
{
        
$report $this->createReportFromMessage($message$logLevel);

        if (! 
is_null($callback)) {
            
call_user_func($callback$report);
        }

        
$this->sendReportToApi($report);
    }

    public function 
sendTestReport(Throwable $throwable): void
    
{
        
$this->api->sendTestReport($this->createReport($throwable));
    }

    protected function 
sendReportToApi(Report $report): void
    
{
        if (
$this->filterReportsCallable) {
            if (! 
call_user_func($this->filterReportsCallable$report)) {
                return;
            }
        }

        try {
            
$this->api->report($report);
        } catch (
Exception $exception) {
        }
    }

    public function 
reset(): void
    
{
        
$this->api->sendQueuedReports();

        
$this->userProvidedContext = [];

        
$this->recorder->reset();
    }

    protected function 
applyAdditionalParameters(Report $report): void
    
{
        
$report
            
->stage($this->stage)
            ->
messageLevel($this->messageLevel)
            ->
setApplicationPath($this->applicationPath)
            ->
userProvidedContext($this->userProvidedContext);
    }

    public function 
anonymizeIp(): self
    
{
        
$this->registerMiddleware(new RemoveRequestIp());

        return 
$this;
    }

    
/**
     * @param array<int, string> $fieldNames
     *
     * @return $this
     */
    
public function censorRequestBodyFields(array $fieldNames): self
    
{
        
$this->registerMiddleware(new CensorRequestBodyFields($fieldNames));

        return 
$this;
    }

    public function 
createReport(Throwable $throwable): Report
    
{
        
$report Report::createForThrowable(
            
$throwable,
            
$this->contextDetector->detectCurrentContext(),
            
$this->applicationPath,
            
$this->version(),
            
$this->argumentReducers,
            
$this->withStackFrameArguments
        
);

        return 
$this->applyMiddlewareToReport($report);
    }

    public function 
createReportFromMessage(string $messagestring $logLevel): Report
    
{
        
$report Report::createForMessage(
            
$message,
            
$logLevel,
            
$this->contextDetector->detectCurrentContext(),
            
$this->applicationPath,
            
$this->argumentReducers,
            
$this->withStackFrameArguments
        
);

        return 
$this->applyMiddlewareToReport($report);
    }

    protected function 
applyMiddlewareToReport(Report $report): Report
    
{
        
$this->applyAdditionalParameters($report);
        
$middleware array_map(function ($singleMiddleware) {
            return 
is_string($singleMiddleware)
                ? new 
$singleMiddleware
                
$singleMiddleware;
        }, 
$this->middleware);


        
$report = (new Pipeline())
            ->
send($report)
            ->
through($middleware)
            ->
then(fn ($report) => $report);

        return 
$report;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0051 ]--