%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/public_html/admin1/vendor/phpro/grumphp/src/Linter/Json/ |
Upload File : |
<?php
declare(strict_types=1);
namespace GrumPHP\Linter\Json;
use GrumPHP\Collection\LintErrorsCollection;
use GrumPHP\Linter\LinterInterface;
use GrumPHP\Util\Filesystem;
use Seld\JsonLint\JsonParser;
use Seld\JsonLint\ParsingException;
use SplFileInfo;
class JsonLinter implements LinterInterface
{
/**
* @var bool
*/
private $detectKeyConflicts = false;
/**
* @var Filesystem
*/
private $filesystem;
/**
* @var JsonParser
*/
private $jsonParser;
public function __construct(Filesystem $filesystem, JsonParser $jsonParser)
{
$this->filesystem = $filesystem;
$this->jsonParser = $jsonParser;
}
/**
* @throws ParsingException
*/
public function lint(SplFileInfo $file): LintErrorsCollection
{
$errors = new LintErrorsCollection();
$flags = $this->calculateFlags();
try {
$json = $this->filesystem->readFromFileInfo($file);
$this->jsonParser->parse($json, $flags);
} catch (ParsingException $exception) {
$errors->add(JsonLintError::fromParsingException($file, $exception));
}
return $errors;
}
public function isInstalled(): bool
{
return class_exists(JsonParser::class);
}
public function setDetectKeyConflicts(bool $detectKeyConflicts): void
{
$this->detectKeyConflicts = $detectKeyConflicts;
}
private function calculateFlags(): int
{
$flags = 0;
$flags += $this->detectKeyConflicts ? JsonParser::DETECT_KEY_CONFLICTS : 0;
return $flags;
}
}