| 
<?php
 /*
 * This file is part of Chevere.
 *
 * (c) Rodolfo Berrios <[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);
 
 namespace Chevere\VarDump\Processors;
 
 use Chevere\Parameter\Interfaces\TypeInterface;
 use Chevere\VarDump\Interfaces\ProcessorInterface;
 use Chevere\VarDump\Interfaces\VarDumperInterface;
 use Chevere\VarDump\Processors\Traits\ProcessorTrait;
 
 final class ResourceProcessor implements ProcessorInterface
 {
 use ProcessorTrait;
 
 private string $stringVar = '';
 
 public function __construct(
 private VarDumperInterface $varDumper
 ) {
 $this->assertType();
 /** @var resource $resource */
 $resource = $this->varDumper->dumpable()->var();
 $this->info = 'type=' . get_resource_type($resource);
 $this->stringVar = $this->varDumper->format()->highlight(
 $this->type(),
 strval($resource)
 );
 }
 
 public function type(): string
 {
 return TypeInterface::RESOURCE;
 }
 
 public function write(): void
 {
 $this->varDumper->writer()->write(
 implode(' ', [
 $this->stringVar,
 $this->highlightParentheses($this->info),
 ])
 );
 }
 }
 
 |