Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php /** * This file is part of the reliforp/reli-prof package. * * (c) sji <sji@sj-i..

Decoded Output download

<?php

/**
 * This file is part of the reliforp/reli-prof package.
 *
 * (c) sji <[email protected]>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

declare(strict_types=1);

use DI\Container;
use Monolog\Formatter\JsonFormatter;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Noodlehaus\Config;
use Psr\Log\LogLevel;
use Reli\Inspector\Daemon\Reader\Worker\PhpReaderTraceLoop;
use Reli\Inspector\Daemon\Reader\Worker\PhpReaderTraceLoopInterface;
use Reli\Inspector\Output\TraceFormatter\Templated\TemplatePathResolver;
use Reli\Inspector\Output\TraceFormatter\Templated\TemplatePathResolverInterface;
use Reli\Lib\Amphp\ContextCreator;
use Reli\Lib\Amphp\ContextCreatorInterface;
use Reli\Lib\ByteStream\IntegerByteSequence\IntegerByteSequenceReader;
use Reli\Lib\ByteStream\IntegerByteSequence\LittleEndianReader;
use Reli\Lib\Elf\Process\ProcessModuleSymbolReaderCreator;
use Reli\Lib\Elf\Process\ProcessModuleSymbolReaderCreatorInterface;
use Reli\Lib\Elf\SymbolResolver\Elf64SymbolResolverCreator;
use Reli\Lib\Elf\SymbolResolver\SymbolResolverCreatorInterface;
use Reli\Lib\File\FileReaderInterface;
use Reli\Lib\File\NativeFileReader;
use Reli\Lib\File\PathResolver\ContainerAwarePathResolver;
use Reli\Lib\File\PathResolver\ProcessPathResolver;
use Reli\Lib\Libc\Sys\Ptrace\Ptrace;
use Reli\Lib\Libc\Sys\Ptrace\PtraceX64;
use Reli\Lib\Log\StateCollector\CallerStateCollector;
use Reli\Lib\Log\StateCollector\GroupedStateCollector;
use Reli\Lib\Log\StateCollector\ProcessStateCollector;
use Reli\Lib\Log\StateCollector\StateCollector;
use Reli\Lib\PhpInternals\ZendTypeReader;
use Reli\Lib\Process\MemoryMap\ProcessMemoryMapCreator;
use Reli\Lib\Process\MemoryMap\ProcessMemoryMapCreatorInterface;
use Reli\Lib\Process\MemoryReader\MemoryReader;
use Reli\Lib\Process\MemoryReader\MemoryReaderInterface;
use Reli\Lib\Process\Search\ProcessSearcher;
use Reli\Lib\Process\Search\ProcessSearcherInterface;
use Psr\Log\LoggerInterface;
use function DI\autowire;

return [
    MemoryReaderInterface::class => autowire(MemoryReader::class),
    ProcessMemoryMapCreatorInterface::class => autowire(ProcessMemoryMapCreator::class),
    ProcessModuleSymbolReaderCreatorInterface::class => autowire(ProcessModuleSymbolReaderCreator::class),
    ProcessPathResolver::class => autowire(ContainerAwarePathResolver::class),
    ZendTypeReader::class => function () {
        return new ZendTypeReader(ZendTypeReader::V80);
    },
    SymbolResolverCreatorInterface::class => autowire(Elf64SymbolResolverCreator::class),
    FileReaderInterface::class => autowire(NativeFileReader::class),
    IntegerByteSequenceReader::class => autowire(LittleEndianReader::class),
    ContextCreator::class => autowire()
        ->constructorParameter('di_config_file', __DIR__ . '/di.php'),
    ContextCreatorInterface::class => autowire(ContextCreator::class)
        ->constructorParameter('di_config_file', __DIR__ . '/di.php'),
    PhpReaderTraceLoopInterface::class => autowire(PhpReaderTraceLoop::class),
    ProcessSearcherInterface::class => autowire(ProcessSearcher::class),
    Config::class => fn () => Config::load(__DIR__ . '/config.php'),
    TemplatePathResolverInterface::class => autowire(TemplatePathResolver::class),
    StateCollector::class => function (Container $container) {
        $collectors = [];
        $collectors[] = $container->make(ProcessStateCollector::class);
        $collectors[] = $container->make(CallerStateCollector::class);
        return new GroupedStateCollector(...$collectors);
    },
    LoggerInterface::class => function (Config $config) {
        $logger = new Logger('default');
        $path = $config->get('log.path.default');
        assert(is_string($path));
        /** @var LogLevel::* $log_level */
        $log_level = $config->get('log.level');
        $handler = new StreamHandler(
            $path,
            Logger::toMonologLevel($log_level),
        );
        $handler->setFormatter(new JsonFormatter());
        $logger->pushHandler($handler);
        return $logger;
    },
    Ptrace::class => autowire(PtraceX64::class),
];
 ?>

Did this file decode correctly?

Original Code

<?php

/**
 * This file is part of the reliforp/reli-prof package.
 *
 * (c) sji <[email protected]>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

declare(strict_types=1);

use DI\Container;
use Monolog\Formatter\JsonFormatter;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Noodlehaus\Config;
use Psr\Log\LogLevel;
use Reli\Inspector\Daemon\Reader\Worker\PhpReaderTraceLoop;
use Reli\Inspector\Daemon\Reader\Worker\PhpReaderTraceLoopInterface;
use Reli\Inspector\Output\TraceFormatter\Templated\TemplatePathResolver;
use Reli\Inspector\Output\TraceFormatter\Templated\TemplatePathResolverInterface;
use Reli\Lib\Amphp\ContextCreator;
use Reli\Lib\Amphp\ContextCreatorInterface;
use Reli\Lib\ByteStream\IntegerByteSequence\IntegerByteSequenceReader;
use Reli\Lib\ByteStream\IntegerByteSequence\LittleEndianReader;
use Reli\Lib\Elf\Process\ProcessModuleSymbolReaderCreator;
use Reli\Lib\Elf\Process\ProcessModuleSymbolReaderCreatorInterface;
use Reli\Lib\Elf\SymbolResolver\Elf64SymbolResolverCreator;
use Reli\Lib\Elf\SymbolResolver\SymbolResolverCreatorInterface;
use Reli\Lib\File\FileReaderInterface;
use Reli\Lib\File\NativeFileReader;
use Reli\Lib\File\PathResolver\ContainerAwarePathResolver;
use Reli\Lib\File\PathResolver\ProcessPathResolver;
use Reli\Lib\Libc\Sys\Ptrace\Ptrace;
use Reli\Lib\Libc\Sys\Ptrace\PtraceX64;
use Reli\Lib\Log\StateCollector\CallerStateCollector;
use Reli\Lib\Log\StateCollector\GroupedStateCollector;
use Reli\Lib\Log\StateCollector\ProcessStateCollector;
use Reli\Lib\Log\StateCollector\StateCollector;
use Reli\Lib\PhpInternals\ZendTypeReader;
use Reli\Lib\Process\MemoryMap\ProcessMemoryMapCreator;
use Reli\Lib\Process\MemoryMap\ProcessMemoryMapCreatorInterface;
use Reli\Lib\Process\MemoryReader\MemoryReader;
use Reli\Lib\Process\MemoryReader\MemoryReaderInterface;
use Reli\Lib\Process\Search\ProcessSearcher;
use Reli\Lib\Process\Search\ProcessSearcherInterface;
use Psr\Log\LoggerInterface;
use function DI\autowire;

return [
    MemoryReaderInterface::class => autowire(MemoryReader::class),
    ProcessMemoryMapCreatorInterface::class => autowire(ProcessMemoryMapCreator::class),
    ProcessModuleSymbolReaderCreatorInterface::class => autowire(ProcessModuleSymbolReaderCreator::class),
    ProcessPathResolver::class => autowire(ContainerAwarePathResolver::class),
    ZendTypeReader::class => function () {
        return new ZendTypeReader(ZendTypeReader::V80);
    },
    SymbolResolverCreatorInterface::class => autowire(Elf64SymbolResolverCreator::class),
    FileReaderInterface::class => autowire(NativeFileReader::class),
    IntegerByteSequenceReader::class => autowire(LittleEndianReader::class),
    ContextCreator::class => autowire()
        ->constructorParameter('di_config_file', __DIR__ . '/di.php'),
    ContextCreatorInterface::class => autowire(ContextCreator::class)
        ->constructorParameter('di_config_file', __DIR__ . '/di.php'),
    PhpReaderTraceLoopInterface::class => autowire(PhpReaderTraceLoop::class),
    ProcessSearcherInterface::class => autowire(ProcessSearcher::class),
    Config::class => fn () => Config::load(__DIR__ . '/config.php'),
    TemplatePathResolverInterface::class => autowire(TemplatePathResolver::class),
    StateCollector::class => function (Container $container) {
        $collectors = [];
        $collectors[] = $container->make(ProcessStateCollector::class);
        $collectors[] = $container->make(CallerStateCollector::class);
        return new GroupedStateCollector(...$collectors);
    },
    LoggerInterface::class => function (Config $config) {
        $logger = new Logger('default');
        $path = $config->get('log.path.default');
        assert(is_string($path));
        /** @var LogLevel::* $log_level */
        $log_level = $config->get('log.level');
        $handler = new StreamHandler(
            $path,
            Logger::toMonologLevel($log_level),
        );
        $handler->setFormatter(new JsonFormatter());
        $logger->pushHandler($handler);
        return $logger;
    },
    Ptrace::class => autowire(PtraceX64::class),
];

Function Calls

None

Variables

None

Stats

MD5 788d38f920981c9ca1e25569bf90b1f3
Eval Count 0
Decode Time 138 ms