diff --git a/.gitattributes b/.gitattributes
index 6ad756877..532b148b6 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -10,6 +10,7 @@
/.gitignore export-ignore
/.markdownlint.yaml export-ignore
/.markdownlint-cli2.yaml export-ignore
+/composer.lock export-ignore
/composer-dependency-analyser.php export-ignore
/composer-require-checker.json export-ignore
/docker-compose.yaml export-ignore
@@ -20,6 +21,7 @@
/package-lock.json export-ignore
/phpcs.xml export-ignore
/phpstan.neon export-ignore
+/phpstan-larastan.neon export-ignore
/phpstan-baseline.neon export-ignore
/phpstan-baseline-well-known.neon export-ignore
/phpunit.xml export-ignore
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7137c2841..1fee7d8fe 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -35,6 +35,9 @@ jobs:
# (because will install whole "laravel/framework")
composer remove --no-interaction --no-progress --ansi --no-update "orchestra/testbench"
composer remove --no-interaction --no-progress --ansi --no-update --dev "orchestra/testbench"
+
+ # (because it used only to run phpstan)
+ composer remove --no-interaction --no-progress --ansi --no-update --dev "phpstan/phpstan"
- name: Install dependencies
uses: ramsey/composer-install@v3
@@ -162,10 +165,6 @@ jobs:
uses: actions/checkout@v4
- name: Install PHP
uses: ./.github/actions/php
- - name: Install phpstan
- uses: ./.github/actions/tool
- with:
- tool: phpstan
- name: Execute
run: |
composer run-script phpstan -- --error-format=checkstyle | cs2pr
diff --git a/composer-dependency-analyser.php b/composer-dependency-analyser.php
index 80bb103eb..980ab2191 100644
--- a/composer-dependency-analyser.php
+++ b/composer-dependency-analyser.php
@@ -29,7 +29,13 @@
$path = Path::realpath(getopt('', ['composer-json:'])['composer-json'] ?? 'composer.json');
$root = Path::realpath(dirname(__FILE__).'/composer.json') === $path;
-if (!$root) {
+if ($root) {
+ $config
+ ->ignoreErrorsOnPackage('phpstan/phpstan-mockery', [ErrorType::UNUSED_DEPENDENCY])
+ ->ignoreErrorsOnPackage('phpstan/phpstan-phpunit', [ErrorType::UNUSED_DEPENDENCY])
+ ->ignoreErrorsOnPackage('phpstan/phpstan-strict-rules', [ErrorType::UNUSED_DEPENDENCY])
+ ->ignoreErrorsOnPackage('spaze/phpstan-disallowed-calls', [ErrorType::UNUSED_DEPENDENCY]);
+} else {
$config->disableReportingUnmatchedIgnores();
}
diff --git a/composer.json b/composer.json
index fe4ba4578..eeb9713a6 100644
--- a/composer.json
+++ b/composer.json
@@ -61,14 +61,17 @@
"illuminate/testing": "^10.34.0|^11.0.0",
"illuminate/translation": "^10.34.0|^11.0.0",
"illuminate/validation": "^10.34.0|^11.0.0",
+ "larastan/larastan": "^2.8.1",
"league/commonmark": "^2.5.1",
"league/config": "^1.1.1",
"mockery/mockery": "^1.6.5",
+ "nette/neon": "^3.4",
"nikic/php-parser": "^5.0",
"nuwave/lighthouse": "^6.5.0",
"opis/json-schema": "^2.3.0",
"phpdocumentor/type-resolver": "^1.7",
"phpstan/phpdoc-parser": "^1.25",
+ "phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^10.1.0|^11.0.0",
"psr/http-message": "^1.0.0|^2.0.0",
"sebastian/comparator": "^5.0|^6.0.0",
@@ -85,6 +88,7 @@
"symfony/property-info": "^6.3.9|^7.0.0",
"symfony/psr-http-message-bridge": "^2.0.0|^6.4.0|^7.0.0",
"symfony/serializer": "^6.4.0|^7.0.0",
+ "symfony/var-dumper": "^6.3.0|^7.0.0",
"webonyx/graphql-php": "^15.4.0"
},
"require-dev": {
@@ -95,7 +99,12 @@
"illuminate/cache": "^10.34.0|^11.0.0",
"illuminate/config": "^10.34.0|^11.0.0",
"laravel/scout": "^9.8.0|^10.0.0",
- "orchestra/testbench": "^8.0.0|^9.0.0"
+ "orchestra/testbench": "^8.0.0|^9.0.0",
+ "phpstan/phpstan": "1.12.5",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpstan/phpstan-strict-rules": "^1.5",
+ "spaze/phpstan-disallowed-calls": "^3.0"
},
"autoload": {
"files": [
@@ -104,6 +113,7 @@
],
"psr-4": {
"LastDragon_ru\\LaraASP\\Core\\": "packages/core/src/",
+ "LastDragon_ru\\LaraASP\\Dev\\": "packages/dev/src/",
"LastDragon_ru\\LaraASP\\Documentator\\": "packages/documentator/src/",
"LastDragon_ru\\LaraASP\\Eloquent\\": "packages/eloquent/src/",
"LastDragon_ru\\LaraASP\\Formatter\\": "packages/formatter/src/",
@@ -118,6 +128,7 @@
"autoload-dev": {
"exclude-from-classmap": [
"packages/core/docs/",
+ "packages/dev/docs/",
"packages/documentator/docs/",
"packages/eloquent/docs/",
"packages/formatter/docs/",
@@ -130,6 +141,7 @@
],
"psr-4": {
"LastDragon_ru\\LaraASP\\Core\\Docs\\": "packages/core/docs",
+ "LastDragon_ru\\LaraASP\\Dev\\Docs\\": "packages/dev/docs",
"LastDragon_ru\\LaraASP\\Documentator\\Docs\\": "packages/documentator/docs",
"LastDragon_ru\\LaraASP\\Eloquent\\Docs\\": "packages/eloquent/docs",
"LastDragon_ru\\LaraASP\\Formatter\\Docs\\": "packages/formatter/docs",
@@ -164,6 +176,7 @@
"laravel": {
"providers": [
"LastDragon_ru\\LaraASP\\Core\\Provider",
+ "LastDragon_ru\\LaraASP\\Dev\\Provider",
"LastDragon_ru\\LaraASP\\Documentator\\Provider",
"LastDragon_ru\\LaraASP\\Eloquent\\Provider",
"LastDragon_ru\\LaraASP\\Formatter\\Provider",
@@ -175,6 +188,15 @@
}
},
"scripts": {
+ "post-install-cmd": [
+ "composer run-script dump:larastan"
+ ],
+ "post-update-cmd": [
+ "composer run-script dump:larastan"
+ ],
+ "dump:larastan": [
+ "LastDragon_ru\\LaraASP\\Dev\\PhpStan\\Larastan\\Extension::dump"
+ ],
"validate:commit": [
"@phpstan",
"@phpunit",
@@ -192,7 +214,7 @@
"jq --indent 2 '.' composer.json > composer.tmp && mv composer.tmp composer.json"
],
"phpstan": [
- "./vendor-bin/phpstan/vendor/bin/phpstan analyse -v"
+ "./vendor/bin/phpstan analyse -v"
],
"phpunit": [
"./vendor/bin/phpunit"
@@ -237,8 +259,8 @@
},
"replace": {
"lastdragon-ru/lara-asp-core": "self.version",
- "lastdragon-ru/lara-asp-documentator": "self.version",
"lastdragon-ru/lara-asp-dev": "self.version",
+ "lastdragon-ru/lara-asp-documentator": "self.version",
"lastdragon-ru/lara-asp-eloquent": "self.version",
"lastdragon-ru/lara-asp-formatter": "self.version",
"lastdragon-ru/lara-asp-graphql": "self.version",
diff --git a/monorepo-builder.php b/monorepo-builder.php
index 06a64dab2..3d4986e99 100644
--- a/monorepo-builder.php
+++ b/monorepo-builder.php
@@ -4,5 +4,4 @@
return static function (MBConfig $config): void {
$config->packageDirectories([__DIR__.'/packages']);
- $config->packageDirectoriesExcludes(['dev', 'src']);
};
diff --git a/packages/core/src/Helpers/Translator.php b/packages/core/src/Helpers/Translator.php
index 332f7d06b..3cbd57e97 100644
--- a/packages/core/src/Helpers/Translator.php
+++ b/packages/core/src/Helpers/Translator.php
@@ -74,7 +74,7 @@ protected function translate(array|string $variants, Closure $callback): string
$translated = array_splice($variants, -1);
$translated = (string) end($translated);
- if ($variants) {
+ if ($variants !== []) {
foreach ($variants as $variant) {
$result = $callback($variant);
diff --git a/packages/core/src/Utils/ConfigMerger.php b/packages/core/src/Utils/ConfigMerger.php
index a7404d0f7..ef4543db1 100644
--- a/packages/core/src/Utils/ConfigMerger.php
+++ b/packages/core/src/Utils/ConfigMerger.php
@@ -91,7 +91,7 @@ protected function process(array &$target, array $config, string $path): void {
// Merge
foreach ($config as $key => &$value) {
// Current path
- $current = $path ? "{$path}.{$key}" : "{$key}";
+ $current = $path !== '' ? "{$path}.{$key}" : "{$key}";
// Only scalars/nulls and arrays of them allowed
if (!is_scalar($value) && !is_null($value) && !is_array($value)) {
@@ -106,11 +106,11 @@ protected function process(array &$target, array $config, string $path): void {
throw new InvalidArgumentException('Array cannot be replaced by scalar/null value.');
}
- if ($target[$key][static::Replace] ?? false) {
+ if (isset($target[$key][static::Replace]) && $target[$key][static::Replace] === true) {
$target[$key] = [static::Replace => true] + (array) $value;
} elseif (is_string(key($target[$key]))) {
$this->process($target[$key], (array) $value, $current);
- } elseif (!$target[$key]) {
+ } elseif ($target[$key] === []) {
$target[$key] = (array) $value;
} else {
$target[$key] = array_values((array) $value);
diff --git a/packages/core/src/Utils/Scheduler.php b/packages/core/src/Utils/Scheduler.php
index 3c803fbc7..bd61cac3e 100644
--- a/packages/core/src/Utils/Scheduler.php
+++ b/packages/core/src/Utils/Scheduler.php
@@ -39,7 +39,7 @@ public function register(Schedule $schedule, string $class): bool {
$settings = $this->getSettings($class, $instance);
// Enabled?
- if (!($settings['enabled'] ?? true) || !$settings['cron']) {
+ if (!($settings['enabled'] ?? true) || $settings['cron'] === '') {
return false;
}
diff --git a/packages/dev/composer.json b/packages/dev/composer.json
index 63a69781b..955318e9a 100644
--- a/packages/dev/composer.json
+++ b/packages/dev/composer.json
@@ -40,7 +40,7 @@
"extra": {
"laravel": {
"providers": [
- "LastDragon_ru\\LaraASP\\Dev\\App\\Provider"
+ "LastDragon_ru\\LaraASP\\Dev\\Provider"
]
}
},
diff --git a/packages/dev/docs/.gitignore b/packages/dev/docs/.gitignore
new file mode 100644
index 000000000..d6b7ef32c
--- /dev/null
+++ b/packages/dev/docs/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/packages/dev/src/App/Dumper.php b/packages/dev/src/App/Dumper.php
index fba40cd44..288172ca8 100644
--- a/packages/dev/src/App/Dumper.php
+++ b/packages/dev/src/App/Dumper.php
@@ -23,7 +23,7 @@ class Dumper {
public function __construct() {
$this->cloner = new VarCloner([
'*' => static function (object $obj, array $a, Stub $stub, bool $isNested, int $filter = 0): array {
- return $filter ? Caster::filter($a, $filter) : $a;
+ return $filter > 0 ? Caster::filter($a, $filter) : $a;
},
]);
$this->dumper = new CliDumper(
@@ -50,7 +50,7 @@ public function dump(mixed $value, ?string $expression): void {
public function raw(Stringable|string $value, ?string $expression, string $type): void {
$dump = trim((string) $value);
- $dump = ($expression ? "The `{$expression}` is:\n\n" : '')."```{$type}\n{$dump}\n```\n";
+ $dump = ($expression !== null ? "The `{$expression}` is:\n\n" : '')."```{$type}\n{$dump}\n```\n";
$this->dumps[] = $dump;
}
}
diff --git a/packages/dev/src/App/Example.php b/packages/dev/src/App/Example.php
index e51b937ef..941dcf50e 100644
--- a/packages/dev/src/App/Example.php
+++ b/packages/dev/src/App/Example.php
@@ -8,6 +8,7 @@
use LastDragon_ru\LaraASP\Core\Utils\ConfigMerger;
use LastDragon_ru\LaraASP\Documentator\Processor\FileSystem\File;
use LastDragon_ru\LaraASP\Documentator\Processor\Tasks\Preprocess\Instructions\IncludeExample\Contracts\Runner;
+use LastDragon_ru\LaraASP\Documentator\Utils\Text;
use LogicException;
use Override;
use PhpParser\ErrorHandler\Collecting;
@@ -25,7 +26,6 @@
use function debug_backtrace;
use function end;
use function implode;
-use function preg_split;
use function sprintf;
use function str_contains;
use function trim;
@@ -44,7 +44,7 @@ public function __construct(
}
protected static function getDumper(): Dumper {
- if (!self::$dumper) {
+ if (self::$dumper === null) {
throw new LogicException(
sprintf(
'The `%s` can be called only within example context.',
@@ -79,7 +79,7 @@ public function __invoke(File $file): ?string {
$dumps = self::$dumper->getDumps();
$output = implode("\n\n", array_map(trim(...), $dumps));
- if ($output) {
+ if ($output !== '') {
$result = "{$output}";
}
} finally {
@@ -100,7 +100,7 @@ public static function raw(Stringable|string $value, string $type, ?string $expr
}
protected static function app(): Application {
- if (!self::$app) {
+ if (self::$app === null) {
throw new LogicException(
sprintf(
'The `%s` can be called only within example context.',
@@ -136,7 +136,7 @@ private static function getExpression(string $method): ?string {
}
// Extract first arg
- $lines = preg_split('/\R/u', self::$file?->getContent() ?? '') ?: [];
+ $lines = Text::getLines(self::$file?->getContent() ?? '');
$code = implode("\n", array_slice($lines, $context['line'] - 1));
$parser = (new ParserFactory())->createForNewestSupportedVersion();
$stmts = (array) $parser->parse("getNativeReflection()->getShortName();
$filename = pathinfo((string) $reflection->getFileName(), PATHINFO_FILENAME);
- $mustBe = $filename
+ $mustBe = $filename !== ''
&& str_ends_with($filename, 'Test')
&& str_starts_with($classname, "{$filename}_");
diff --git a/packages/dev/src/PhpStan/Larastan/Extension.php b/packages/dev/src/PhpStan/Larastan/Extension.php
index 0b111018f..14755decc 100644
--- a/packages/dev/src/PhpStan/Larastan/Extension.php
+++ b/packages/dev/src/PhpStan/Larastan/Extension.php
@@ -14,6 +14,7 @@
use function array_filter;
use function array_keys;
use function array_values;
+use function dirname;
use function file_get_contents;
use function file_put_contents;
use function getcwd;
@@ -27,13 +28,13 @@
class Extension {
/**
* Removes unwanted/conflicting services from `larastan/extension.neon` and
- * dump remaining into `larastan.neon` (that should be used instead of the
- * original file).
+ * dump remaining into `phpstan-larastan.neon` (that should be used instead
+ * of the original file).
*/
public static function dump(): void {
// Prepare
$origin = Path::join(self::getLarastanPath(), 'extension.neon');
- $target = Path::getPath(self::getRootPath(), 'larastan.neon');
+ $target = Path::getPath(self::getRootPath(), 'phpstan-larastan.neon');
// Load
$extension = Neon::decode((string) file_get_contents($origin));
@@ -68,7 +69,7 @@ private static function updateBootstrapFiles(string $path, array $extension): ar
// Update
$source = self::getLarastanPath();
$files = (array) ($extension['parameters']['bootstrapFiles'] ?? []);
- $root = Path::getDirname($path);
+ $root = dirname($path);
foreach ($files as $index => $file) {
if (!is_string($file)) {
@@ -118,7 +119,7 @@ private static function updateServices(string $path, array $extension): array {
// Unused?
$unused = array_keys(array_filter($disabled));
- if ($unused) {
+ if ($unused !== []) {
throw new Exception(
sprintf(
'The following services is unknown: `%s`',
diff --git a/packages/dev/src/App/Provider.php b/packages/dev/src/Provider.php
similarity index 83%
rename from packages/dev/src/App/Provider.php
rename to packages/dev/src/Provider.php
index aac56f64a..88dd67c16 100644
--- a/packages/dev/src/App/Provider.php
+++ b/packages/dev/src/Provider.php
@@ -1,8 +1,9 @@
factory)();
foreach ($processor->tasks() as $index => $task) {
- $description = '_No description provided_.';
- $description = trim($this->getProcessedHelpTaskDescription($task, $level + 1)) ?: $description;
+ $description = trim($this->getProcessedHelpTaskDescription($task, $level + 1));
+ $description = $description !== '' ? $description : $default;
$extensions = '`'.implode('`, `', $task::getExtensions()).'`';
- $title = trim((string) $this->getProcessedHelpTaskTitle($task)) ?: "Task №{$index}";
+ $title = trim((string) $this->getProcessedHelpTaskTitle($task));
+ $title = $title !== '' ? $title : "Task №{$index}";
$help .= <<getDocBlock($class, null, $level + 1);
- $target = $this->getProcessedHelpTaskPreprocessInstructionTarget($instruction, 'target', 2);
- $target = trim($target ?: '_No description provided_.');
+ $target = trim((string) $this->getProcessedHelpTaskPreprocessInstructionTarget($instruction, 'target', 2));
+ $target = $target !== '' ? $target : '_No description provided_.';
$params = $this->getProcessedHelpTaskPreprocessParameters($instruction, 'target', 2);
if ($params !== null) {
@@ -274,13 +276,13 @@ protected function getProcessedHelpTaskPreprocessParameters(
}
// Add
- $parameters[trim($definition)] = trim(
- $this->getDocBlock($property, $padding) ?: '_No description provided_.',
- );
+ $description = trim($this->getDocBlock($property, $padding));
+ $description = $description !== '' ? $description : '_No description provided_.';
+ $parameters[trim($definition)] = $description;
}
// Empty?
- if (!$parameters) {
+ if ($parameters === []) {
return null;
}
@@ -307,7 +309,7 @@ private function getDocBlock(
?int $padding = null,
?int $level = null,
): string {
- $help = (new PhpDoc($object->getDocComment() ?: null))->getText();
+ $help = (new PhpDoc((string) $object->getDocComment()))->getText();
if ($level !== null) {
$level = max(1, min(6, $level));
diff --git a/packages/documentator/src/Commands/Requirements.php b/packages/documentator/src/Commands/Requirements.php
index d4f66af8f..aeb4a7a16 100644
--- a/packages/documentator/src/Commands/Requirements.php
+++ b/packages/documentator/src/Commands/Requirements.php
@@ -116,7 +116,7 @@ public function __invoke(
// Collect requirements
$storage = new Storage($serializer, $cwd);
$metadata = $storage->load();
- $packages = $metadata->require ?: [
+ $packages = $metadata->require !== [] ? $metadata->require : [
'php' => 'PHP',
'laravel/framework' => 'Laravel',
];
@@ -137,7 +137,7 @@ public function __invoke(
// Load
$package = $this->getPackageInfo($factory, $git, $tag, $cwd);
- if (!$package) {
+ if ($package === null) {
break;
}
@@ -161,7 +161,8 @@ public function __invoke(
// Unreleased
if (
- $metadata->version
+ $metadata->version !== null
+ && $metadata->version !== ''
&& !isset($metadata->requirements[$metadata->version])
&& isset($metadata->requirements[self::HEAD])
) {
@@ -245,7 +246,7 @@ protected function getPackageRequirements(array $require, array $merge, Composer
$match = false;
foreach ($regexps as $regexp => $key) {
- if (preg_match($regexp, $requirement)) {
+ if (preg_match($regexp, $requirement) > 0) {
$requirement = $key;
$match = true;
break;
@@ -263,7 +264,9 @@ protected function getPackageRequirements(array $require, array $merge, Composer
// Add
$required = explode('|', Cast::toString($constraint));
- $required = array_values(array_filter(array_map(trim(...), $required)));
+ $required = array_map(trim(...), $required);
+ $required = array_filter($required, static fn ($string) => $string !== '');
+ $required = array_values($required);
$requirement = Cast::toString($requirement);
$requirements[$requirement] = array_merge($requirements[$requirement] ?? [], $required);
$requirements[$requirement] = array_values(array_unique($requirements[$requirement]));
@@ -336,7 +339,7 @@ protected function getMergedVersions(array $versions, array $merge): array {
}
}
- if ($current) {
+ if ($current !== []) {
$ranges[] = $current;
}
diff --git a/packages/documentator/src/Markdown/Document.php b/packages/documentator/src/Markdown/Document.php
index 12026ff95..4eaf84ffb 100644
--- a/packages/documentator/src/Markdown/Document.php
+++ b/packages/documentator/src/Markdown/Document.php
@@ -65,7 +65,7 @@ public function getTitle(): ?string {
$this->title = $title;
}
- return $this->title ?: null;
+ return $this->title !== '' ? $this->title : null;
}
/**
@@ -79,7 +79,7 @@ public function getSummary(): ?string {
$this->summary = $summary;
}
- return $this->summary ?: null;
+ return $this->summary !== '' ? $this->summary : null;
}
/**
@@ -92,7 +92,8 @@ public function getBody(): ?string {
$body = $start !== null && is_int($end)
? $this->getText(new Location($start + 1, $end))
: null;
- $body = trim((string) $body) ?: null;
+ $body = trim((string) $body);
+ $body = $body !== '' ? $body : null;
return $body;
}
@@ -102,7 +103,7 @@ public function getPath(): ?string {
}
public function setPath(?string $path): static {
- $this->path = $path ? Path::normalize($path) : null;
+ $this->path = $path !== null ? Path::normalize($path) : null;
return $this;
}
@@ -118,12 +119,7 @@ public function mutate(Mutation ...$mutations): static {
$document = clone $this;
foreach ($mutations as $mutation) {
- $changes = $mutation($document, $document->getNode());
-
- if (!$changes) {
- continue;
- }
-
+ $changes = $mutation($document, $document->getNode());
$content = trim((string) $document->getEditor()->mutate($changes))."\n";
$document = $document->setContent($content);
}
@@ -222,7 +218,7 @@ private function getBlockText(?AbstractBlock $node): ?string {
$location = $node?->getStartLine() !== null && $node->getEndLine() !== null
? new Location($node->getStartLine(), $node->getEndLine())
: null;
- $text = $location
+ $text = $location !== null
? $this->getText($location)
: null;
diff --git a/packages/documentator/src/Markdown/Editor.php b/packages/documentator/src/Markdown/Editor.php
index 227e301f8..4278232c5 100644
--- a/packages/documentator/src/Markdown/Editor.php
+++ b/packages/documentator/src/Markdown/Editor.php
@@ -104,7 +104,7 @@ public function mutate(iterable $changes): static {
$line = $lines[$number] ?? '';
$count = count($text);
$prefix = mb_substr($line, 0, $coordinate->offset);
- $suffix = $coordinate->length
+ $suffix = $coordinate->length !== null
? mb_substr($line, $coordinate->offset + $coordinate->length)
: '';
$padding = mb_substr($line, 0, $coordinate->padding);
@@ -123,7 +123,7 @@ public function mutate(iterable $changes): static {
array_splice($lines, $number, 1, $insert);
} elseif ($count === 1) {
$lines[$number] = rtrim($prefix.$text[0].$suffix);
- } elseif (($prefix && $prefix !== $padding) || $suffix) {
+ } elseif (($prefix !== '' && $prefix !== $padding) || $suffix !== '') {
$lines[$number] = rtrim($prefix.$suffix);
} else {
unset($lines[$number]);
@@ -152,7 +152,7 @@ protected function prepare(iterable $changes): array {
$coordinates[] = $coordinate;
}
- if ($coordinates) {
+ if ($coordinates !== []) {
$prepared[] = [$coordinates, $text];
}
}
@@ -169,7 +169,12 @@ protected function expand(array $changes): array {
$expanded = [];
$append = [];
$sort = static function (Coordinate $a, Coordinate $b): int {
- return $a->line <=> $b->line ?: $a->offset <=> $b->offset;
+ $result = $a->line <=> $b->line;
+ $result = $result === 0
+ ? $a->offset <=> $b->offset
+ : $result;
+
+ return $result;
};
foreach ($changes as [$coordinates, $text]) {
@@ -212,12 +217,12 @@ protected function removeOverlaps(array $changes): array {
$lines[$coordinate->line][] = $coordinate;
if ($this->isOverlapped($used, $coordinate)) {
- $lines = null;
+ $lines = [];
break;
}
}
- if ($lines) {
+ if ($lines !== []) {
foreach ($lines as $line => $coords) {
$used[$line] = array_merge($used[$line] ?? [], $coords);
}
diff --git a/packages/documentator/src/Markdown/Mutations/FootnotesPrefix.php b/packages/documentator/src/Markdown/Mutations/FootnotesPrefix.php
index cc03c98df..97cc15259 100644
--- a/packages/documentator/src/Markdown/Mutations/FootnotesPrefix.php
+++ b/packages/documentator/src/Markdown/Mutations/FootnotesPrefix.php
@@ -41,9 +41,9 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
// Replace
$label = $this->getLabel($document, $child);
- $location = $label ? $this->getLabelLocation($child, $label) : null;
+ $location = $label !== null ? $this->getLabelLocation($child, $label) : null;
- if ($location) {
+ if ($location !== null) {
yield [$location, "{$this->prefix}-{$label}"];
}
}
@@ -56,8 +56,8 @@ private function getLabel(Document $document, Footnote|FootnoteRef $footnote): ?
if ($footnote instanceof FootnoteRef) {
$location = Utils::getLocation($footnote);
- $label = $location
- ? (mb_substr($document->getText($location) ?? '', 2, -1) ?: '')
+ $label = $location !== null
+ ? mb_substr($document->getText($location) ?? '', 2, -1)
: null;
}
diff --git a/packages/documentator/src/Markdown/Mutations/FootnotesRemove.php b/packages/documentator/src/Markdown/Mutations/FootnotesRemove.php
index ca4b76276..55cf4b63a 100644
--- a/packages/documentator/src/Markdown/Mutations/FootnotesRemove.php
+++ b/packages/documentator/src/Markdown/Mutations/FootnotesRemove.php
@@ -34,7 +34,7 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
default => null,
};
- if ($location) {
+ if ($location !== null) {
yield [$location, null];
}
}
diff --git a/packages/documentator/src/Markdown/Mutations/GeneratedUnwrap.php b/packages/documentator/src/Markdown/Mutations/GeneratedUnwrap.php
index 869f7dd67..3d167d9a2 100644
--- a/packages/documentator/src/Markdown/Mutations/GeneratedUnwrap.php
+++ b/packages/documentator/src/Markdown/Mutations/GeneratedUnwrap.php
@@ -38,14 +38,14 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
// Start?
$startMarker = Data::get($child, StartMarkerLocation::class);
- if ($startMarker) {
+ if ($startMarker !== null) {
yield [$startMarker, null];
}
// End
$endMarker = Data::get($child, EndMarkerLocation::class);
- if ($endMarker) {
+ if ($endMarker !== null) {
yield [$endMarker, null];
}
}
diff --git a/packages/documentator/src/Markdown/Mutations/HeadingsLevel.php b/packages/documentator/src/Markdown/Mutations/HeadingsLevel.php
index 3a2526326..ac985a8c6 100644
--- a/packages/documentator/src/Markdown/Mutations/HeadingsLevel.php
+++ b/packages/documentator/src/Markdown/Mutations/HeadingsLevel.php
@@ -74,7 +74,7 @@ private function getHeadings(Document $document, DocumentNode $node, int &$highe
// Location?
$location = Utils::getLocation($child);
- if (!$location) {
+ if ($location === null) {
continue;
}
diff --git a/packages/documentator/src/Markdown/Mutations/Move.php b/packages/documentator/src/Markdown/Mutations/Move.php
index 0b355cf04..dc256ffc2 100644
--- a/packages/documentator/src/Markdown/Mutations/Move.php
+++ b/packages/documentator/src/Markdown/Mutations/Move.php
@@ -71,7 +71,7 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
// Location?
$location = Utils::getLocation($resource);
- if (!$location) {
+ if ($location === null) {
continue;
}
@@ -92,7 +92,7 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
$targetValue = Path::getRelativePath($newDirectory, $targetValue);
$targetWrap = mb_substr(ltrim(ltrim($origin, '(')), 0, 1) === '<';
$target = Utils::getLinkTarget($resource, $targetValue, $targetWrap);
- $text = $title ? "({$target} {$title})" : "({$target})";
+ $text = $title !== '' ? "({$target} {$title})" : "({$target})";
}
} elseif ($resource instanceof Reference) {
$origin = trim((string) $document->getText($location));
diff --git a/packages/documentator/src/Markdown/Mutations/ReferencesInline.php b/packages/documentator/src/Markdown/Mutations/ReferencesInline.php
index a260b518a..4b4015ffc 100644
--- a/packages/documentator/src/Markdown/Mutations/ReferencesInline.php
+++ b/packages/documentator/src/Markdown/Mutations/ReferencesInline.php
@@ -39,7 +39,7 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
// Location?
$location = Utils::getLocation($reference);
- if (!$location) {
+ if ($location === null) {
continue;
}
@@ -53,7 +53,7 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
if ($location !== null) {
$title = Utils::getLinkTitle($reference, (string) $reference->getTitle());
$target = Utils::getLinkTarget($reference, rawurldecode($reference->getUrl()));
- $text = $title ? "({$target} {$title})" : "({$target})";
+ $text = $title !== '' ? "({$target} {$title})" : "({$target})";
}
} elseif ($reference instanceof Reference) {
$text = '';
@@ -62,7 +62,7 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
}
if ($location !== null && $text !== null) {
- yield [$location, $text ?: null];
+ yield [$location, $text !== '' ? $text : null];
}
}
}
diff --git a/packages/documentator/src/Markdown/Mutations/ReferencesPrefix.php b/packages/documentator/src/Markdown/Mutations/ReferencesPrefix.php
index 260c83041..8aad9b340 100644
--- a/packages/documentator/src/Markdown/Mutations/ReferencesPrefix.php
+++ b/packages/documentator/src/Markdown/Mutations/ReferencesPrefix.php
@@ -42,7 +42,7 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
// Location?
$location = Utils::getLocation($reference);
- if (!$location) {
+ if ($location === null) {
continue;
}
@@ -67,7 +67,7 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
break;
}
- if ($coordinate) {
+ if ($coordinate !== null) {
$startLine = $coordinate->line;
$endLine = $startLine;
$offset = $coordinate->offset + 1;
diff --git a/packages/documentator/src/Markdown/Mutations/SelfLinksRemove.php b/packages/documentator/src/Markdown/Mutations/SelfLinksRemove.php
index 45474e5f6..9ba7b61d1 100644
--- a/packages/documentator/src/Markdown/Mutations/SelfLinksRemove.php
+++ b/packages/documentator/src/Markdown/Mutations/SelfLinksRemove.php
@@ -37,7 +37,7 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
$location = Utils::getLocation($link);
$offset = Data::get($link, Offset::class);
- if (!$location || !$offset) {
+ if ($location === null || $offset === null) {
continue;
}
diff --git a/packages/documentator/src/Markdown/Nodes/Generated/ParserContinue.php b/packages/documentator/src/Markdown/Nodes/Generated/ParserContinue.php
index 0a81224ee..971f3e3fa 100644
--- a/packages/documentator/src/Markdown/Nodes/Generated/ParserContinue.php
+++ b/packages/documentator/src/Markdown/Nodes/Generated/ParserContinue.php
@@ -81,14 +81,14 @@ public function closeBlock(): void {
// Start
$start = $this->getStartMarkerLocation();
- if ($start) {
+ if ($start !== null) {
Data::set($this->block, new StartMarkerLocation($start));
}
// End
$end = $this->getEndMarkerLocation();
- if ($end) {
+ if ($end !== null) {
Data::set($this->block, new EndMarkerLocation($end));
}
}
diff --git a/packages/documentator/src/Markdown/Nodes/Generated/ParserStart.php b/packages/documentator/src/Markdown/Nodes/Generated/ParserStart.php
index c52a8ba30..a9af2ffbc 100644
--- a/packages/documentator/src/Markdown/Nodes/Generated/ParserStart.php
+++ b/packages/documentator/src/Markdown/Nodes/Generated/ParserStart.php
@@ -32,7 +32,7 @@ public function tryStart(Cursor $cursor, MarkdownParserStateInterface $parserSta
return BlockStart::none();
}
- if (Utils::getParent($parserState->getActiveBlockParser()->getBlock(), Block::class)) {
+ if (Utils::getParent($parserState->getActiveBlockParser()->getBlock(), Block::class) !== null) {
return BlockStart::none();
}
@@ -40,7 +40,11 @@ public function tryStart(Cursor $cursor, MarkdownParserStateInterface $parserSta
$padding = $cursor->getPosition();
$matches = [];
- if (!preg_match('!^\[//]: # \(start: ([^)]+)\)($|\R)!u', $cursor->getRemainder(), $matches)) {
+ if (
+ !(preg_match('!^\[//]: # \(start: ([^)]+)\)($|\R)!u', $cursor->getRemainder(), $matches) > 0)
+ || !isset($matches[0])
+ || !isset($matches[1])
+ ) {
return BlockStart::none();
}
diff --git a/packages/documentator/src/Markdown/Nodes/Locator/Listener.php b/packages/documentator/src/Markdown/Nodes/Locator/Listener.php
index b0444191e..26ee7622c 100644
--- a/packages/documentator/src/Markdown/Nodes/Locator/Listener.php
+++ b/packages/documentator/src/Markdown/Nodes/Locator/Listener.php
@@ -87,7 +87,7 @@ private function fixTableSection(Document $document, TableSection $section): voi
$start = null;
$end = null;
- if ($previous) {
+ if ($previous !== null) {
$start = $previous->getEndLine();
if ($start !== null) {
@@ -136,12 +136,9 @@ private function fixTableRow(Document $document, TableRow $row): void {
}
// Yep
- $cells = preg_split('/(?toArray($row->children());
diff --git a/packages/documentator/src/Markdown/Nodes/Locator/Parser.php b/packages/documentator/src/Markdown/Nodes/Locator/Parser.php
index 63adf6707..511cc2cc3 100644
--- a/packages/documentator/src/Markdown/Nodes/Locator/Parser.php
+++ b/packages/documentator/src/Markdown/Nodes/Locator/Parser.php
@@ -90,7 +90,7 @@ public function parse(InlineParserContext $inlineContext): bool {
$container = $inlineContext->getContainer();
$child = $container->lastChild();
- if (!$child) {
+ if ($child === null) {
return true;
}
@@ -113,9 +113,9 @@ public function parse(InlineParserContext $inlineContext): bool {
$inlineLinesCount = count($inlineLines) - 1;
$startLine = $startLine + $beforeLinesCount;
$endLine = $startLine + $inlineLinesCount;
- $start = (end($beforeLines) ?: '').(reset($inlineLines) ?: '');
+ $start = ((string) end($beforeLines)).((string) reset($inlineLines));
- if ($beforeLinesCount) {
+ if ($beforeLinesCount > 0) {
$correction = (mb_strlen(implode("\n", array_slice($beforeLines, 0, -1))) + 1);
$offset -= $correction;
$origin -= $correction;
diff --git a/packages/documentator/src/Markdown/Nodes/Reference/Parser.php b/packages/documentator/src/Markdown/Nodes/Reference/Parser.php
index dbd1f7551..761f98a32 100644
--- a/packages/documentator/src/Markdown/Nodes/Reference/Parser.php
+++ b/packages/documentator/src/Markdown/Nodes/Reference/Parser.php
@@ -32,7 +32,7 @@ public function __construct() {
public function parse(string $line): bool {
// Parse
- $this->parser->parse($line ?: "\n");
+ $this->parser->parse($line !== '' ? $line : "\n");
// Not a Reference
if ($this->hasState($this->parserStateParagraph)) {
diff --git a/packages/documentator/src/Markdown/Nodes/Reference/ParserContinue.php b/packages/documentator/src/Markdown/Nodes/Reference/ParserContinue.php
index ee9ec0d6e..316056153 100644
--- a/packages/documentator/src/Markdown/Nodes/Reference/ParserContinue.php
+++ b/packages/documentator/src/Markdown/Nodes/Reference/ParserContinue.php
@@ -78,7 +78,11 @@ public function closeBlock(): void {
$this->block->setReference($reference);
- if ($reference && $this->referenceMap && !$this->referenceMap->contains($reference->getLabel())) {
+ if (
+ $reference !== null
+ && $this->referenceMap !== null
+ && !$this->referenceMap->contains($reference->getLabel())
+ ) {
$this->referenceMap->add($reference);
}
diff --git a/packages/documentator/src/Markdown/Nodes/RendererWrapper.php b/packages/documentator/src/Markdown/Nodes/RendererWrapper.php
index 5acbe3149..4f1480bb0 100644
--- a/packages/documentator/src/Markdown/Nodes/RendererWrapper.php
+++ b/packages/documentator/src/Markdown/Nodes/RendererWrapper.php
@@ -104,7 +104,7 @@ protected function location(?Location $location): ?string {
$lines[] = '{'.implode(',', [$line->line, $line->offset, $line->length ?? 'null']).'}';
}
- return $lines ? '['.implode(',', $lines).']' : null;
+ return $lines !== [] ? '['.implode(',', $lines).']' : null;
}
/**
diff --git a/packages/documentator/src/Markdown/Utils.php b/packages/documentator/src/Markdown/Utils.php
index c41de92ed..ea7965b17 100644
--- a/packages/documentator/src/Markdown/Utils.php
+++ b/packages/documentator/src/Markdown/Utils.php
@@ -186,7 +186,7 @@ public static function getReference(AbstractWebResource $node): ?ReferenceInterf
}
public static function getLinkTarget(Node $container, string $target, ?bool $wrap = null): string {
- $target = ($wrap ?? preg_match('/\s/u', $target))
+ $target = ($wrap ?? preg_match('/\s/u', $target) > 0)
? '<'.strtr($target, ['<' => '\\<', '>' => '\\>']).'>'
: UrlEncoder::unescapeAndEncode($target);
$target = self::escapeTextInTableCell($container, $target);
@@ -195,7 +195,7 @@ public static function getLinkTarget(Node $container, string $target, ?bool $wra
}
public static function getLinkTitle(Node $container, string $title, ?string $wrapper = null): string {
- if (!$title) {
+ if ($title === '') {
return '';
}
@@ -269,8 +269,8 @@ public static function isPathRelative(string $path): bool {
public static function isPathToSelf(string $path, ?Document $document = null): bool {
$name = Path::normalize(basename($document?->getPath() ?? ''));
- $path = Path::normalize(parse_url($path, PHP_URL_PATH) ?: '');
- $self = $path === '' || ($name && $path === $name);
+ $path = Path::normalize((string) parse_url($path, PHP_URL_PATH));
+ $self = $path === '' || ($name !== '' && $path === $name);
return $self;
}
diff --git a/packages/documentator/src/Processor/Executor.php b/packages/documentator/src/Processor/Executor.php
index 305609d43..2bb63b1b9 100644
--- a/packages/documentator/src/Processor/Executor.php
+++ b/packages/documentator/src/Processor/Executor.php
@@ -233,7 +233,7 @@ private function isSkipped(File $file): bool {
$excluded = false;
foreach ($this->exclude as $regexp) {
- if (preg_match($regexp, $path)) {
+ if (preg_match($regexp, $path) > 0) {
$excluded = true;
break;
}
diff --git a/packages/documentator/src/Processor/InstanceList.php b/packages/documentator/src/Processor/InstanceList.php
index 7d70f325f..dc8f0bae2 100644
--- a/packages/documentator/src/Processor/InstanceList.php
+++ b/packages/documentator/src/Processor/InstanceList.php
@@ -44,7 +44,7 @@ public function __construct(
}
public function isEmpty(): bool {
- return !$this->map;
+ return $this->map === [];
}
/**
@@ -121,7 +121,7 @@ public function add(object|string $instance, ?Closure $configurator = null): sta
$this->map[$key][] = $class;
$this->configurators[$class] = $configurator;
- if ($resolved) {
+ if ($resolved !== null) {
$this->instances[$class] = $resolved;
}
}
diff --git a/packages/documentator/src/Processor/Metadata/PhpClassComment.php b/packages/documentator/src/Processor/Metadata/PhpClassComment.php
index bd9be892c..fc117553e 100644
--- a/packages/documentator/src/Processor/Metadata/PhpClassComment.php
+++ b/packages/documentator/src/Processor/Metadata/PhpClassComment.php
@@ -25,7 +25,7 @@ public function __construct(
#[Override]
public function __invoke(File $file): mixed {
$class = $file->getMetadata($this->class);
- $comment = $class
+ $comment = $class !== null
? new class ($class->class, $class->context, new PhpDoc($class->class->getDocComment()?->getText())) {
public function __construct(
public readonly ClassLike $class,
diff --git a/packages/documentator/src/Processor/Metadata/PhpClassMarkdown.php b/packages/documentator/src/Processor/Metadata/PhpClassMarkdown.php
index ebdc5f63c..5ac0dee68 100644
--- a/packages/documentator/src/Processor/Metadata/PhpClassMarkdown.php
+++ b/packages/documentator/src/Processor/Metadata/PhpClassMarkdown.php
@@ -34,7 +34,7 @@ public function __invoke(File $file): mixed {
// Comment?
$comment = $file->getMetadata($this->comment);
- if (!$comment) {
+ if ($comment === null) {
return null;
}
@@ -57,7 +57,7 @@ static function (string $class) use ($context): string {
},
);
- if ($reference) {
+ if ($reference !== null) {
$result = "`{$reference}`";
}
diff --git a/packages/documentator/src/Processor/Metadata/PhpDocBlock.php b/packages/documentator/src/Processor/Metadata/PhpDocBlock.php
index 9dfcf5f4c..7f1821043 100644
--- a/packages/documentator/src/Processor/Metadata/PhpDocBlock.php
+++ b/packages/documentator/src/Processor/Metadata/PhpDocBlock.php
@@ -43,19 +43,15 @@ public function __invoke(File $file): mixed {
// Class?
$class = $file->getMetadata($this->class);
- if (!$class) {
+ if ($class === null) {
return null;
}
- // Parse
+ // Prepare
$content = (new PhpDoc($class->class->getDocComment()?->getText()))->getText();
$content = $this->preprocess($class->context, $content);
$content = trim($content);
- if (!$content) {
- return new Document('', $file->getPath());
- }
-
// Create
return new Document($content, $file->getPath());
}
@@ -72,7 +68,7 @@ static function (string $class) use ($context): string {
},
);
- if ($reference) {
+ if ($reference !== null) {
$result = "`{$reference}`";
}
diff --git a/packages/documentator/src/Processor/Tasks/CodeLinks/Links/Base.php b/packages/documentator/src/Processor/Tasks/CodeLinks/Links/Base.php
index 160afe7e9..229879dfb 100644
--- a/packages/documentator/src/Processor/Tasks/CodeLinks/Links/Base.php
+++ b/packages/documentator/src/Processor/Tasks/CodeLinks/Links/Base.php
@@ -34,7 +34,7 @@ public function getTitle(): ?string {
$title = mb_substr($title, $position + 1);
}
- return $title ?: null;
+ return $title !== '' ? $title : null;
}
/**
@@ -50,7 +50,7 @@ public function getTarget(Directory $root, File $file, File $source): ?LinkTarge
// Class?
$comment = $source->getMetadata($this->comment);
- if (!$comment) {
+ if ($comment === null) {
return null;
}
diff --git a/packages/documentator/src/Processor/Tasks/CodeLinks/Links/Factory.php b/packages/documentator/src/Processor/Tasks/CodeLinks/Links/Factory.php
index ef1039697..6a85573e7 100644
--- a/packages/documentator/src/Processor/Tasks/CodeLinks/Links/Factory.php
+++ b/packages/documentator/src/Processor/Tasks/CodeLinks/Links/Factory.php
@@ -42,9 +42,11 @@ public function create(string $string, ?Closure $resolver = null): ?Link {
$matches = [];
$string = trim($string);
- if (preg_match($regexp, $string, $matches, PREG_UNMATCHED_AS_NULL)) {
- $class = $matches['class'];
- $class = $resolver ? $resolver($class) : $class;
+ if (preg_match($regexp, $string, $matches, PREG_UNMATCHED_AS_NULL) > 0) {
+ $class = $matches['class'] ?? null;
+ $class = $class !== null && $resolver !== null
+ ? $resolver($class)
+ : $class;
if ($class !== null) {
$class = '\\'.ltrim($class, '\\');
diff --git a/packages/documentator/src/Processor/Tasks/CodeLinks/Task.php b/packages/documentator/src/Processor/Tasks/CodeLinks/Task.php
index 2e5fd996c..40f87e0dd 100644
--- a/packages/documentator/src/Processor/Tasks/CodeLinks/Task.php
+++ b/packages/documentator/src/Processor/Tasks/CodeLinks/Task.php
@@ -90,7 +90,7 @@ public function __invoke(Directory $root, File $file): Generator {
// Markdown?
$document = $file->getMetadata($this->markdown);
- if (!$document || $document->isEmpty()) {
+ if ($document === null || $document->isEmpty()) {
return true;
}
@@ -115,12 +115,12 @@ public function __invoke(Directory $root, File $file): Generator {
$path = $root->getPath($path);
$source = Cast::toNullable(File::class, yield new Optional(new FileReference($path)));
- if ($source) {
+ if ($source !== null) {
break;
}
}
- if (!$source && !$token->deprecated) {
+ if ($source === null && !$token->deprecated) {
$unresolved[] = $token;
continue;
}
@@ -128,10 +128,10 @@ public function __invoke(Directory $root, File $file): Generator {
// Target?
$target = null;
- if ($source) {
+ if ($source !== null) {
$target = $token->link->getTarget($root, $file, $source);
- if (!$target && !$token->deprecated) {
+ if ($target === null && !$token->deprecated) {
$unresolved[] = $token;
continue;
}
@@ -142,7 +142,7 @@ public function __invoke(Directory $root, File $file): Generator {
}
// Unresolved?
- if ($unresolved) {
+ if ($unresolved !== []) {
$unresolved = array_map(static fn ($token) => (string) $token->link, $unresolved);
sort($unresolved);
@@ -153,7 +153,7 @@ public function __invoke(Directory $root, File $file): Generator {
// Mutate
$changes = $this->getChanges($document, $parsed['blocks'], $resolved);
- if ($changes) {
+ if ($changes !== []) {
$file->setContent(
(string) $document->mutate(new Changeset($changes)),
);
@@ -181,7 +181,7 @@ private function getChanges(Document $document, array $blocks, array $links): ar
$refsParentNode = $block;
$refsParentLocation = Utils::getLocation($block);
- if ($refsParentLocation) {
+ if ($refsParentLocation !== null) {
$changes[] = [$refsParentLocation, null];
}
}
@@ -193,7 +193,7 @@ private function getChanges(Document $document, array $blocks, array $links): ar
foreach ($links as [$token, $target]) {
$title = $token->link->getTitle();
- if (!$target || !$title) {
+ if ($target === null || $title === null || $title === '') {
continue;
}
@@ -211,14 +211,14 @@ private function getChanges(Document $document, array $blocks, array $links): ar
$link = (string) $token->link;
$hash = static::BlockMarker.'/'.Text::hash($link);
$title = $token->link->getTitle();
- $title = $target && $title && !isset($duplicates[$title])
+ $title = $target !== null && $title !== null && $title !== '' && !isset($duplicates[$title])
? $title
: $link;
- $title = !$target || $target->deprecated
+ $title = $target === null || $target->deprecated
? static::DeprecationMarker.$title
: $title;
- if ($target) {
+ if ($target !== null) {
$referenceTitle = Utils::getLinkTitle($refsParentNode, $link);
$referenceTarget = Utils::getLinkTarget($refsParentNode, (string) $target);
$references[$referenceTitle] = "[{$hash}]: {$referenceTarget}\n {$referenceTitle}";
@@ -227,15 +227,15 @@ private function getChanges(Document $document, array $blocks, array $links): ar
foreach ($token->nodes as $node) {
$location = Utils::getLocation($node);
- if ($location) {
+ if ($location !== null) {
$linkTitle = Utils::escapeTextInTableCell($node, $title);
- $changes[] = [$location, $target ? "[`{$linkTitle}`][{$hash}]" : "`{$linkTitle}`"];
+ $changes[] = [$location, $target !== null ? "[`{$linkTitle}`][{$hash}]" : "`{$linkTitle}`"];
}
}
}
// References
- if ($references) {
+ if ($references !== []) {
ksort($references);
$location = $refsParentLocation ?? new Append();
@@ -276,7 +276,7 @@ protected function parse(Document $document): array {
$link = $this->factory->create((string) $parent->getTitle()) ?? $link;
}
- if (!$link) {
+ if ($link === null) {
continue;
}
diff --git a/packages/documentator/src/Processor/Tasks/Preprocess/Context.php b/packages/documentator/src/Processor/Tasks/Preprocess/Context.php
index 3eaae7dc6..5069eeb3b 100644
--- a/packages/documentator/src/Processor/Tasks/Preprocess/Context.php
+++ b/packages/documentator/src/Processor/Tasks/Preprocess/Context.php
@@ -64,7 +64,7 @@ public function toSplittable(Document $document): Document {
private function getMutation(Document $document): Mutation {
$path = $this->file->getPath();
- $path = $document->getPath()
+ $path = $document->getPath() !== null
? Path::getPath(dirname($path), basename($document->getPath()))
: $path;
diff --git a/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeDocumentList/Instruction.php b/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeDocumentList/Instruction.php
index 1b4ffe404..785054ce0 100644
--- a/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeDocumentList/Instruction.php
+++ b/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeDocumentList/Instruction.php
@@ -65,7 +65,7 @@ public function __invoke(Context $context, string $target, mixed $parameters): G
// Empty?
$document = $file->getMetadata($this->markdown);
- if (!$document || $document->isEmpty()) {
+ if ($document === null || $document->isEmpty()) {
continue;
}
@@ -79,7 +79,7 @@ public function __invoke(Context $context, string $target, mixed $parameters): G
}
// Empty?
- if (!$documents) {
+ if ($documents === []) {
return '';
}
diff --git a/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeExample/Instruction.php b/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeExample/Instruction.php
index b52ac5220..1c7d064b3 100644
--- a/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeExample/Instruction.php
+++ b/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeExample/Instruction.php
@@ -69,7 +69,7 @@ public function __invoke(Context $context, string $target, mixed $parameters): G
CODE;
// Runner?
- if ($this->runner) {
+ if ($this->runner !== null) {
// Run
try {
$output = trim((string) ($this->runner)($target));
@@ -117,7 +117,7 @@ public function __invoke(Context $context, string $target, mixed $parameters): G
CODE;
- } elseif ($output) {
+ } elseif ($output !== '') {
$output = <<printer) {
+ if ($this->printer === null) {
throw new DependencyIsMissing($context, Printer::class);
}
diff --git a/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludePackageList/Instruction.php b/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludePackageList/Instruction.php
index d256240a2..3aab8ed49 100644
--- a/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludePackageList/Instruction.php
+++ b/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludePackageList/Instruction.php
@@ -66,16 +66,16 @@ public function __invoke(Context $context, string $target, mixed $parameters): G
$packageFile = Cast::to(File::class, yield new FileReference($package->getPath('composer.json')));
$packageInfo = $packageFile->getMetadata($this->composer)->json ?? null;
- if (!$packageInfo) {
+ if ($packageInfo === null) {
throw new PackageComposerJsonIsMissing($context, $package);
}
// Readme
- $readme = $package->getPath(Cast::toString($packageInfo->readme ?: 'README.md'));
+ $readme = $package->getPath(Cast::toString($packageInfo->readme ?? 'README.md'));
$readme = Cast::to(File::class, yield new FileReference($readme));
$content = $readme->getMetadata($this->markdown);
- if (!$content || $content->isEmpty()) {
+ if ($content === null || $content->isEmpty()) {
throw new PackageReadmeIsEmpty($context, $package, $readme);
}
@@ -92,7 +92,7 @@ public function __invoke(Context $context, string $target, mixed $parameters): G
}
// Packages?
- if (!$packages) {
+ if ($packages === []) {
return '';
}
diff --git a/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeTemplate/Instruction.php b/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeTemplate/Instruction.php
index 1d49d2ed3..52f483870 100644
--- a/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeTemplate/Instruction.php
+++ b/packages/documentator/src/Processor/Tasks/Preprocess/Instructions/IncludeTemplate/Instruction.php
@@ -49,7 +49,7 @@ public static function getParameters(): string {
#[Override]
public function __invoke(Context $context, string $target, mixed $parameters): Generator {
// Data?
- if (!$parameters->data) {
+ if ($parameters->data === []) {
throw new TemplateDataMissed($context);
}
@@ -85,14 +85,14 @@ public function __invoke(Context $context, string $target, mixed $parameters): G
// Unused?
$unused = array_diff($vars, $used);
- if ($unused) {
+ if ($unused !== []) {
throw new TemplateVariablesUnused($context, array_values($unused));
}
// Missed?
$missed = array_diff($known, $used);
- if ($missed) {
+ if ($missed !== []) {
throw new TemplateVariablesMissed($context, array_values($missed));
}
diff --git a/packages/documentator/src/Processor/Tasks/Preprocess/Mutations/InstructionsRemove.php b/packages/documentator/src/Processor/Tasks/Preprocess/Mutations/InstructionsRemove.php
index fa0e5612a..a9529a984 100644
--- a/packages/documentator/src/Processor/Tasks/Preprocess/Mutations/InstructionsRemove.php
+++ b/packages/documentator/src/Processor/Tasks/Preprocess/Mutations/InstructionsRemove.php
@@ -44,7 +44,7 @@ public function __invoke(Document $document, DocumentNode $node): iterable {
// Location?
$location = MarkdownUtils::getLocation($block);
- if ($location) {
+ if ($location !== null) {
$changes[] = [$location, null];
}
}
diff --git a/packages/documentator/src/Processor/Tasks/Preprocess/Task.php b/packages/documentator/src/Processor/Tasks/Preprocess/Task.php
index 8b9108387..f83978027 100644
--- a/packages/documentator/src/Processor/Tasks/Preprocess/Task.php
+++ b/packages/documentator/src/Processor/Tasks/Preprocess/Task.php
@@ -117,7 +117,7 @@ public function __invoke(Directory $root, File $file): Generator {
// Markdown?
$document = $file->getMetadata($this->markdown);
- if (!$document) {
+ if ($document === null) {
return false;
}
@@ -161,20 +161,20 @@ public function __invoke(Directory $root, File $file): Generator {
} else {
$location = MarkdownUtils::getLocation($node);
- if ($location) {
+ if ($location !== null) {
$instruction = trim((string) $document->getText($location));
$text = "{$instruction}\n{$text}";
}
}
- if ($location) {
+ if ($location !== null) {
$changes[] = [$location, $text];
}
}
}
// Mutate
- if ($changes) {
+ if ($changes !== []) {
$file->setContent(
(string) $document->mutate(new Changeset($changes)),
);
@@ -204,7 +204,7 @@ protected function parse(Directory $root, File $file, Document $document): Token
$name = $node->getLabel();
$instruction = $this->instructions->get($name)[0] ?? null;
- if (!$instruction) {
+ if ($instruction === null) {
continue;
}
@@ -221,7 +221,9 @@ protected function parse(Directory $root, File $file, Document $document): Token
}
// Parse
- $context = new Context($root, $file, $node->getDestination(), $node->getTitle() ?: null, $mutation);
+ $title = $node->getTitle();
+ $title = $title !== '' ? $title : null;
+ $context = new Context($root, $file, $node->getDestination(), $title, $mutation);
$parameters = $instruction::getParameters();
$parameters = $this->serializer->deserialize($parameters, $params, 'json');
@@ -241,7 +243,9 @@ protected function parse(Directory $root, File $file, Document $document): Token
}
private function getParametersJson(string $target, ?string $json): string {
- $parameters = (array) ($json ? json_decode($json, true, flags: JSON_THROW_ON_ERROR) : []);
+ $parameters = $json !== null && $json !== ''
+ ? (array) json_decode($json, true, flags: JSON_THROW_ON_ERROR)
+ : [];
$parameters['target'] = $target;
$parameters = $this->getParametersJsonNormalize($parameters);
$parameters = json_encode($parameters, JSON_THROW_ON_ERROR);
diff --git a/packages/documentator/src/Processor/Tasks/Preprocess/Utils.php b/packages/documentator/src/Processor/Tasks/Preprocess/Utils.php
index 5b03ec38e..27a0169e4 100644
--- a/packages/documentator/src/Processor/Tasks/Preprocess/Utils.php
+++ b/packages/documentator/src/Processor/Tasks/Preprocess/Utils.php
@@ -27,7 +27,7 @@ class Utils {
*/
public static function isInstruction(Node $node, InstanceList $instructions): bool {
return $node instanceof ReferenceNode
- && !MarkdownUtils::getParent($node, GeneratedNode::class)
+ && MarkdownUtils::getParent($node, GeneratedNode::class) === null
&& $instructions->has($node->getLabel());
}
@@ -36,7 +36,8 @@ public static function getSeed(Context $context, Document|File $file): string {
$file instanceof Document => Path::getRelativePath($context->root->getPath(), $file->getPath() ?? ''),
default => $file->getRelativePath($context->root),
};
- $path = Text::hash($path ?: uniqid(self::class)); // @phpstan-ignore disallowed.function
+ $path = $path !== '' ? $path : uniqid(self::class); // @phpstan-ignore disallowed.function
+ $path = Text::hash($path);
return $path;
}
diff --git a/packages/documentator/src/Utils/ArtisanSerializer.php b/packages/documentator/src/Utils/ArtisanSerializer.php
index 7e95fef3e..449b9af9c 100644
--- a/packages/documentator/src/Utils/ArtisanSerializer.php
+++ b/packages/documentator/src/Utils/ArtisanSerializer.php
@@ -48,7 +48,7 @@ public function getOptionSignature(InputOption $option): string {
$default = $option->getDefault() !== null && $option->acceptValue();
$signature = '--';
- if ($option->getShortcut()) {
+ if ($option->getShortcut() !== null && $option->getShortcut() !== '') {
$signature .= $option->getShortcut().'|';
}
diff --git a/packages/documentator/src/Utils/Git.php b/packages/documentator/src/Utils/Git.php
index f26224bbc..b0e1e5f0b 100644
--- a/packages/documentator/src/Utils/Git.php
+++ b/packages/documentator/src/Utils/Git.php
@@ -24,7 +24,7 @@ public function __construct(
public function getTags(?callable $filter = null, ?string $root = null): array {
$tags = $this->run(['git', 'tag', '--list'], $root);
$tags = explode("\n", $tags);
- $tags = $filter ? array_filter($tags, $filter) : $tags;
+ $tags = $filter !== null ? array_filter($tags, $filter) : $tags;
$tags = array_values($tags);
return $tags;
diff --git a/packages/documentator/src/Utils/Markdown.php b/packages/documentator/src/Utils/Markdown.php
index 3dec8d46d..950be85fe 100644
--- a/packages/documentator/src/Utils/Markdown.php
+++ b/packages/documentator/src/Utils/Markdown.php
@@ -41,8 +41,8 @@ class Markdown {
*/
public static function getTitle(string $string): ?string {
$title = static::getText($string, static::getTitleNode($string));
- $title = $title ? ltrim($title, '# ') : null;
- $title = $title ?: null;
+ $title = $title !== null ? ltrim($title, '# ') : null;
+ $title = $title !== '' ? $title : null;
return $title;
}
@@ -53,7 +53,7 @@ public static function getTitle(string $string): ?string {
public static function getSummary(string $string): ?string {
$title = static::getTitleNode($string);
$summary = static::getFirstNode($title?->next(), Paragraph::class);
- $summary = $summary
+ $summary = $summary !== null
? static::getText($string, $summary)
: null;
@@ -65,7 +65,8 @@ public static function getSummary(string $string): ?string {
*/
public static function setPadding(string $string, int $spaces): string {
$prefix = str_repeat(' ', $spaces);
- $lines = preg_split('/\R/u', $string) ?: [];
+ $lines = preg_split('/\R/u', $string);
+ $lines = $lines !== false ? $lines : [];
$cut = PHP_INT_MAX;
foreach ($lines as $line) {
@@ -76,7 +77,7 @@ public static function setPadding(string $string, int $spaces): string {
foreach ($lines as $i => $line) {
$line = mb_substr($line, $cut);
- $line = ($line ? $prefix : '').$line;
+ $line = ($line !== '' ? $prefix : '').$line;
$lines[$i] = $line;
}
@@ -101,13 +102,14 @@ protected static function getTitleNode(string $string): ?Heading {
protected static function getText(string $string, ?AbstractBlock $node): ?string {
// todo(documentator): There is no way to convert AST back to Markdown yet
// https://github.com/thephpleague/commonmark/issues/419
- if (!$node || $node->getStartLine() === null || $node->getEndLine() === null) {
+ if ($node?->getStartLine() === null || $node->getEndLine() === null) {
return null;
}
$start = $node->getStartLine() - 1;
$end = $node->getEndLine() - 1;
- $lines = (array) preg_split('/\R/u', $string);
+ $lines = preg_split('/\R/u', $string);
+ $lines = $lines !== false ? $lines : [];
$lines = array_slice($lines, $start, $end - $start + 1);
$text = trim(implode("\n", $lines));
diff --git a/packages/documentator/src/Utils/PhpDoc.php b/packages/documentator/src/Utils/PhpDoc.php
index 64e236c84..f295f7f47 100644
--- a/packages/documentator/src/Utils/PhpDoc.php
+++ b/packages/documentator/src/Utils/PhpDoc.php
@@ -46,7 +46,7 @@ public function getDescription(): string {
}
public function isDeprecated(): bool {
- return $this->node && $this->node->getDeprecatedTagValues() !== [];
+ return $this->node !== null && $this->node->getDeprecatedTagValues() !== [];
}
/**
@@ -58,7 +58,7 @@ private function join(array $strings): string {
private function parse(?string $comment): ?PhpDocNode {
// Empty?
- if (!$comment || trim($comment) === '') {
+ if ($comment === null || trim($comment) === '') {
return null;
}
diff --git a/packages/documentator/src/Utils/Text.php b/packages/documentator/src/Utils/Text.php
index 805dfb36c..31b3fc4ba 100644
--- a/packages/documentator/src/Utils/Text.php
+++ b/packages/documentator/src/Utils/Text.php
@@ -35,13 +35,16 @@ public static function setPadding(string $text, int $level, string $padding = '
$cut = PHP_INT_MAX;
foreach ($lines as $line) {
- if (!$line) {
+ if ($line === '') {
continue;
}
$trims = 0;
- while ($line && (str_starts_with($line, $padding) || ($trimmed && str_starts_with($line, $trimmed)))) {
+ while (
+ $line !== ''
+ && (str_starts_with($line, $padding) || ($trimmed !== '' && str_starts_with($line, $trimmed)))
+ ) {
$line = mb_substr($line, $length);
$trims++;
@@ -64,7 +67,10 @@ public static function setPadding(string $text, int $level, string $padding = '
* @return list
*/
public static function getLines(string $text): array {
- return preg_split('/\R/u', $text) ?: [];
+ $lines = preg_split('/\R/u', $text);
+ $lines = $lines !== false ? $lines : [];
+
+ return $lines;
}
public static function getPathTitle(string $path): string {
diff --git a/packages/eloquent/src/Iterators/ChunkedChangeSafeIterator.php b/packages/eloquent/src/Iterators/ChunkedChangeSafeIterator.php
index b892601e8..92371c664 100644
--- a/packages/eloquent/src/Iterators/ChunkedChangeSafeIterator.php
+++ b/packages/eloquent/src/Iterators/ChunkedChangeSafeIterator.php
@@ -76,12 +76,12 @@ static function (Builder $builder, string|int|null $offset) use ($column): void
protected function chunkProcessed(Collection $items): bool {
$last = $this->column($items->last());
- if ($last) {
+ if ($last !== null) {
$this->setOffset($last);
}
return parent::chunkProcessed($items)
- && $last;
+ && $last !== null;
}
/**
@@ -92,7 +92,7 @@ protected function column(Model|null $item): mixed {
$column = explode('.', $this->getColumn());
$column = trim(end($column), '`"[]');
- if ($item) {
+ if ($item !== null) {
$value = $item->getAttribute($column);
}
diff --git a/packages/eloquent/src/Iterators/IteratorImpl.php b/packages/eloquent/src/Iterators/IteratorImpl.php
index 59ee94801..d7dfd52cc 100644
--- a/packages/eloquent/src/Iterators/IteratorImpl.php
+++ b/packages/eloquent/src/Iterators/IteratorImpl.php
@@ -100,7 +100,7 @@ public function setOffset(string|int|null $offset): static {
#[Override]
public function onBeforeChunk(?Closure $closure): static {
- if ($closure) {
+ if ($closure !== null) {
$this->beforeChunk->attach($closure);
} else {
$this->beforeChunk->reset();
@@ -111,7 +111,7 @@ public function onBeforeChunk(?Closure $closure): static {
#[Override]
public function onAfterChunk(?Closure $closure): static {
- if ($closure) {
+ if ($closure !== null) {
$this->afterChunk->attach($closure);
} else {
$this->afterChunk->reset();
@@ -127,7 +127,7 @@ public function onAfterChunk(?Closure $closure): static {
public function getIterator(): Generator {
// Prepare
$index = $this->getIndex();
- $chunk = $this->limit ? min($this->limit, $this->chunk) : $this->chunk;
+ $chunk = $this->limit > 0 ? min($this->limit, $this->chunk) : $this->chunk;
$limit = $this->limit;
// Limit?
@@ -140,7 +140,7 @@ public function getIterator(): Generator {
$builder = (clone $this->getBuilder())->tap(static function (Builder $builder): void {
$builder->offset(0);
});
- $chunk = $limit ? min($chunk, $limit - $index) : $chunk;
+ $chunk = $limit > 0 ? min($chunk, $limit - $index) : $chunk;
$items = $this->getChunk($builder, $chunk);
$count = count($items);
@@ -152,7 +152,7 @@ public function getIterator(): Generator {
$this->setIndex($index);
}
- if (!$this->chunkProcessed($items) || ($limit && $index >= $limit)) {
+ if (!$this->chunkProcessed($items) || ($limit > 0 && $index >= $limit)) {
break;
}
} while ($count !== 0 && $count >= $chunk);
@@ -187,7 +187,7 @@ protected function chunkProcessed(Collection $items): bool {
protected function getDefaultLimit(): ?int {
$builder = $this->getBuilder()->getQuery();
- $limit = $builder->unions
+ $limit = $builder->unions !== null && $builder->unions !== []
? $builder->unionLimit
: $builder->limit;
@@ -196,7 +196,7 @@ protected function getDefaultLimit(): ?int {
protected function getDefaultOffset(): ?int {
$builder = $this->getBuilder()->getQuery();
- $offset = $builder->unions
+ $offset = $builder->unions !== null && $builder->unions !== []
? $builder->unionOffset
: $builder->offset;
diff --git a/packages/eloquent/src/Mixins/EloquentBuilderMixin.php b/packages/eloquent/src/Mixins/EloquentBuilderMixin.php
index 19735d9fa..d84571a9c 100644
--- a/packages/eloquent/src/Mixins/EloquentBuilderMixin.php
+++ b/packages/eloquent/src/Mixins/EloquentBuilderMixin.php
@@ -40,7 +40,7 @@ public function getChunkedIterator(): Closure {
/** @var Builder $this */
$iterator = new ChunkedIterator($this);
- if ($chunk) {
+ if ($chunk !== null) {
$iterator->setChunkSize($chunk);
}
@@ -56,7 +56,7 @@ public function getChangeSafeIterator(): Closure {
/** @var Builder $this */
$iterator = new ChunkedChangeSafeIterator($this, $column);
- if ($chunk) {
+ if ($chunk !== null) {
$iterator->setChunkSize($chunk);
}
diff --git a/packages/formatter/src/Formatter.php b/packages/formatter/src/Formatter.php
index 8a8f44edc..171f04ea0 100644
--- a/packages/formatter/src/Formatter.php
+++ b/packages/formatter/src/Formatter.php
@@ -17,7 +17,6 @@
use LastDragon_ru\LaraASP\Formatter\Exceptions\FailedToCreateNumberFormatter;
use LastDragon_ru\LaraASP\Formatter\Exceptions\FailedToFormatValue;
use LastDragon_ru\LaraASP\Formatter\Utils\DurationFormatter;
-use Locale;
use NumberFormatter;
use OutOfBoundsException;
@@ -258,11 +257,11 @@ protected function create(): static {
//
// =========================================================================
public function getLocale(): string {
- return $this->locale ?: $this->getDefaultLocale();
+ return $this->locale ?? $this->getDefaultLocale();
}
public function getTimezone(): IntlTimeZone|DateTimeZone|string|null {
- return $this->timezone ?: $this->getDefaultTimezone();
+ return $this->timezone ?? $this->getDefaultTimezone();
}
protected function getTranslator(): PackageTranslator {
@@ -282,14 +281,14 @@ public function integer(int|float|null $value): string {
public function decimal(float|int|null $value, ?int $decimals = null): string {
return $this->formatValue(static::Decimal, $value, $decimals, function () use ($decimals): int {
- return $decimals ?: Cast::toInt($this->getOptions(static::Decimal, 2));
+ return $decimals ?? Cast::toInt($this->getOptions(static::Decimal, 2));
});
}
public function currency(?float $value, ?string $currency = null): string {
- $type = static::Currency;
- $value = (float) $value;
- $currency = $currency ?: Cast::toString($this->getOptions($type, 'USD'));
+ $type = static::Currency;
+ $value = (float) $value;
+ $currency ??= Cast::toString($this->getOptions($type, 'USD'));
$formatter = $this->getIntlNumberFormatter($type);
$formatted = $formatter->formatCurrency($value, $currency);
@@ -305,7 +304,7 @@ public function currency(?float $value, ?string $currency = null): string {
*/
public function percent(?float $value, ?int $decimals = null): string {
return $this->formatValue(static::Percent, (float) $value / 100, $decimals, function () use ($decimals): int {
- return $decimals ?: Cast::toInt($this->getOptions(static::Percent, 0));
+ return $decimals ?? Cast::toInt($this->getOptions(static::Percent, 0));
});
}
@@ -323,7 +322,7 @@ public function ordinal(?int $value): string {
public function duration(DateInterval|float|int|null $value, ?string $format = null): string {
$type = static::Duration;
- $format = $format ?: $this->getOptions($type);
+ $format ??= $this->getOptions($type);
$format = is_string($format)
? Cast::toString($this->getLocaleOptions($type, $format))
: $format;
@@ -371,7 +370,7 @@ public function datetime(
public function filesize(string|float|int|null $bytes, ?int $decimals = null): string {
return $this->formatFilesize(
$bytes,
- $decimals ?: Cast::toInt($this->getOptions(static::Filesize, 2)),
+ $decimals ?? Cast::toInt($this->getOptions(static::Filesize, 2)),
1024,
[
$this->getTranslation(['filesize.B', 'B']),
@@ -397,7 +396,7 @@ public function filesize(string|float|int|null $bytes, ?int $decimals = null): s
public function disksize(string|float|int|null $bytes, ?int $decimals = null): string {
return $this->formatFilesize(
$bytes,
- $decimals ?: Cast::toInt($this->getOptions(static::Disksize, 2)),
+ $decimals ?? Cast::toInt($this->getOptions(static::Disksize, 2)),
1000,
[
$this->getTranslation(['disksize.B', 'B']),
@@ -420,7 +419,7 @@ public function secret(?string $value, ?int $show = null): string {
return '';
}
- $show = $show ?: Cast::toInt($this->getOptions(static::Secret, 5));
+ $show ??= Cast::toInt($this->getOptions(static::Secret, 5));
$length = mb_strlen($value);
$hidden = $length - $show;
@@ -447,12 +446,11 @@ public function secret(?string $value, ?int $show = null): string {
//
// =========================================================================
protected function getDefaultLocale(): string {
- return $this->application->getInstance()->getLocale()
- ?: Locale::getDefault();
+ return $this->application->getInstance()->getLocale();
}
protected function getDefaultTimezone(): IntlTimeZone|DateTimeZone|string|null {
- return $this->config->getInstance()->get('app.timezone') ?: null;
+ return $this->config->getInstance()->get('app.timezone') ?? null;
}
protected function getOptions(string $type, mixed $default = null): mixed {
@@ -468,7 +466,7 @@ protected function getLocaleOptions(string $type, string $option): mixed {
$package = Package::Name;
$locale = $this->getLocale();
$pattern = $repository->get("{$package}.locales.{$locale}.{$type}.{$option}")
- ?: $repository->get("{$package}.all.{$type}.{$option}");
+ ?? $repository->get("{$package}.all.{$type}.{$option}");
return $pattern;
}
@@ -511,7 +509,7 @@ protected function formatDateTime(
return '';
}
- $formatter = ($timezone ? $this->forTimezone($timezone) : $this)->getIntlDateFormatter($type, $format);
+ $formatter = ($timezone !== null ? $this->forTimezone($timezone) : $this)->getIntlDateFormatter($type, $format);
$value = $formatter->format($value);
if ($value === false) {
@@ -531,7 +529,8 @@ protected function formatFilesize(string|float|int|null $bytes, int $decimals, i
$scale = 2 * $decimals;
$bytes = match (true) {
is_float($bytes) => sprintf('%0.0f', $bytes),
- default => ((string) $bytes) ?: '0',
+ $bytes === null => '0',
+ default => (string) $bytes,
};
$length = static function (string $bytes): int {
return mb_strlen(Str::before($bytes, '.'));
@@ -555,7 +554,7 @@ private function getIntlDateFormatter(string $type, ?string $format = null): Int
$key = json_encode([$type, $format], JSON_THROW_ON_ERROR);
$formatter = $this->dateFormatters[$key] ?? $this->createIntlDateFormatter($type, $format);
- if ($formatter) {
+ if ($formatter !== null) {
$this->dateFormatters[$key] = $formatter;
} else {
throw new FailedToCreateDateFormatter($type, $format);
@@ -568,7 +567,7 @@ private function createIntlDateFormatter(string $type, ?string $format = null):
$formatter = null;
$pattern = '';
$default = IntlDateFormatter::SHORT;
- $format = $format ?: $this->getOptions($type, $default);
+ $format ??= $this->getOptions($type, $default);
$tz = $this->getTimezone();
if (is_string($format)) {
@@ -630,7 +629,7 @@ private function getIntlNumberFormatter(
$key = json_encode([$type, $decimals], JSON_THROW_ON_ERROR);
$formatter = $this->numbersFormatters[$key] ?? $this->createIntlNumberFormatter($type, $decimals, $closure);
- if ($formatter) {
+ if ($formatter !== null) {
$this->numbersFormatters[$key] = $formatter;
} else {
throw new FailedToCreateNumberFormatter($type);
@@ -652,7 +651,7 @@ private function createIntlNumberFormatter(
$symbols = [];
$texts = [];
- if ($closure) {
+ if ($closure !== null) {
$decimals = $closure($type, $decimals);
}
@@ -695,7 +694,7 @@ private function createIntlNumberFormatter(
break;
}
- if ($formatter) {
+ if ($formatter !== null) {
$attributes = $attributes
+ (array) $this->getLocaleOptions($type, self::IntlAttributes)
+ (array) $this->getOptions(self::IntlAttributes);
diff --git a/packages/formatter/src/FormatterTest.php b/packages/formatter/src/FormatterTest.php
index ed4a0fa0d..ef217308d 100644
--- a/packages/formatter/src/FormatterTest.php
+++ b/packages/formatter/src/FormatterTest.php
@@ -149,8 +149,9 @@ public function testDurationCustomFormat(): void {
}
public function testTime(): void {
- $time = DateTime::createFromFormat('H:i:s', '23:24:59') ?: null;
+ $time = DateTime::createFromFormat('H:i:s', '23:24:59');
+ self::assertIsObject($time);
self::assertEquals('11:24 PM', str_replace("\u{202F}", ' ', $this->formatter->time($time)));
self::assertEquals(
'2:24 AM',
@@ -163,8 +164,9 @@ public function testTimeConfig(): void {
Package::Name.'.options.'.Formatter::Time => IntlDateFormatter::MEDIUM,
]);
- $time = DateTime::createFromFormat('H:i:s', '23:24:59') ?: null;
+ $time = DateTime::createFromFormat('H:i:s', '23:24:59');
+ self::assertIsObject($time);
self::assertEquals('11:24:59 PM', str_replace("\u{202F}", ' ', $this->formatter->time($time)));
}
@@ -175,15 +177,17 @@ public function testTimeCustomFormat(): void {
Package::Name.'.all.'.Formatter::Time.'.custom2' => 'HH:mm:ss.SSS',
]);
- $time = DateTime::createFromFormat('H:i:s', '23:24:59') ?: null;
+ $time = DateTime::createFromFormat('H:i:s', '23:24:59');
+ self::assertIsObject($time);
self::assertEquals('23:24:59.000', $this->formatter->time($time));
self::assertEquals('23:24:59.000', $this->formatter->time($time, 'custom2'));
}
public function testDate(): void {
- $date = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00') ?: null;
+ $date = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00');
+ self::assertIsObject($date);
self::assertEquals('5/12/05', $this->formatter->date($date));
self::assertEquals('5/13/05', $this->formatter->date($date, null, 'Europe/Moscow'));
}
@@ -193,8 +197,9 @@ public function testDateConfig(): void {
Package::Name.'.options.'.Formatter::Date => IntlDateFormatter::MEDIUM,
]);
- $date = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00') ?: null;
+ $date = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00');
+ self::assertIsObject($date);
self::assertEquals('May 12, 2005', $this->formatter->date($date));
}
@@ -205,15 +210,17 @@ public function testDateCustomFormat(): void {
Package::Name.'.all.'.Formatter::Date.'.custom2' => 'd MMM YYYY',
]);
- $date = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00') ?: null;
+ $date = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00');
+ self::assertIsObject($date);
self::assertEquals('12 May 2005', $this->formatter->date($date));
self::assertEquals('12 May 2005', $this->formatter->date($date, 'custom2'));
}
public function testDatetime(): void {
- $datetime = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00') ?: null;
+ $datetime = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00');
+ self::assertIsObject($datetime);
self::assertEquals('5/12/05, 11:00 PM', str_replace("\u{202F}", ' ', $this->formatter->datetime($datetime)));
self::assertEquals(
'5/13/05, 3:00 AM',
@@ -226,8 +233,9 @@ public function testDatetimeConfig(): void {
Package::Name.'.options.'.Formatter::DateTime => IntlDateFormatter::MEDIUM,
]);
- $datetime = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00') ?: null;
+ $datetime = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00');
+ self::assertIsObject($datetime);
self::assertEquals(
'May 12, 2005, 11:00:00 PM',
str_replace("\u{202F}", ' ', $this->formatter->datetime($datetime)),
@@ -241,8 +249,9 @@ public function testDatetimeCustomFormat(): void {
Package::Name.'.all.'.Formatter::DateTime.'.custom2' => 'd MMM YYYY || HH:mm:ss',
]);
- $datetime = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00') ?: null;
+ $datetime = DateTime::createFromFormat('d.m.Y H:i:s', '12.05.2005 23:00:00');
+ self::assertIsObject($datetime);
self::assertEquals('12 May 2005 || 23:00:00', $this->formatter->datetime($datetime));
self::assertEquals('12 May 2005 || 23:00:00', $this->formatter->datetime($datetime, 'custom2'));
}
diff --git a/packages/formatter/src/Utils/DurationFormatter.php b/packages/formatter/src/Utils/DurationFormatter.php
index b75d9c5c3..9142262fd 100644
--- a/packages/formatter/src/Utils/DurationFormatter.php
+++ b/packages/formatter/src/Utils/DurationFormatter.php
@@ -5,7 +5,6 @@
use DateInterval;
use function abs;
-use function array_filter;
use function array_key_exists;
use function array_reduce;
use function floor;
@@ -52,7 +51,7 @@ public function __construct(
}
public static function getTimestamp(DateInterval $interval): float {
- return ($interval->invert ? -1 : 1) * (0
+ return ($interval->invert !== 0 ? -1 : 1) * (0
+ $interval->y * self::SecondsInYear
+ $interval->m * self::SecondsInMonth
+ $interval->d * self::SecondsInDay
@@ -97,18 +96,16 @@ public function format(float|int $value): string {
private function prepare(array $tokens, float|int $value, array $units): array {
// Calculate values
$values = [];
- $patterns = array_filter(
- array_reduce(
- $tokens,
- static function (array $used, UnicodeDateTimeFormatToken $token) use ($units): array {
- if (array_key_exists($token->pattern, $units)) {
- $used[$token->pattern] = true;
- }
-
- return $used;
- },
- [],
- ),
+ $patterns = array_reduce(
+ $tokens,
+ static function (array $used, UnicodeDateTimeFormatToken $token) use ($units): array {
+ if (array_key_exists($token->pattern, $units)) {
+ $used[$token->pattern] = true;
+ }
+
+ return $used;
+ },
+ [],
);
foreach ($units as $pattern => $multiplier) {
diff --git a/packages/formatter/src/Utils/UnicodeDateTimeFormatParser.php b/packages/formatter/src/Utils/UnicodeDateTimeFormatParser.php
index 03d0e4411..7e10affd4 100644
--- a/packages/formatter/src/Utils/UnicodeDateTimeFormatParser.php
+++ b/packages/formatter/src/Utils/UnicodeDateTimeFormatParser.php
@@ -43,7 +43,7 @@ public function getIterator(): Traversable {
foreach ($this->tokenize($this->pattern) as $token => $value) {
$isEscape = $token === $escape;
- $isPattern = !$isEscape && !$inEscape && preg_match('/[a-z]+/i', $token);
+ $isPattern = !$isEscape && !$inEscape && preg_match('/[a-z]+/i', $token) > 0;
if ($inEscape) {
if ($isEscape) {
@@ -60,7 +60,7 @@ public function getIterator(): Traversable {
$text .= $value;
}
} elseif ($isPattern) {
- if ($text) {
+ if ($text !== null) {
yield new UnicodeDateTimeFormatToken($escape, strtr($text, $replace));
$text = null;
@@ -72,7 +72,7 @@ public function getIterator(): Traversable {
}
}
- if ($text) {
+ if ($text !== null) {
yield new UnicodeDateTimeFormatToken($escape, strtr($text, $replace));
}
@@ -86,7 +86,7 @@ private function tokenize(string $pattern): Iterator {
// Split into char & string of the same chars
$strings = preg_split('/((.)\g{-1}*)/um', $pattern, flags: PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
- if (!$strings) {
+ if ($strings === false || $strings === []) {
yield from [];
return;
diff --git a/packages/graphql-printer/src/Blocks/Block.php b/packages/graphql-printer/src/Blocks/Block.php
index ee603593d..3887415d7 100644
--- a/packages/graphql-printer/src/Blocks/Block.php
+++ b/packages/graphql-printer/src/Blocks/Block.php
@@ -49,7 +49,7 @@ public function serialize(Collector $collector, int $level, int $used): string {
$this->statistics = $collector;
$this->level = $level;
$this->used = $used;
- } elseif ($this->statistics) {
+ } elseif ($this->statistics !== null) {
$collector->addUsed($this->statistics);
} else {
// empty
diff --git a/packages/graphql-printer/src/Blocks/Document/ArgumentTest.php b/packages/graphql-printer/src/Blocks/Document/ArgumentTest.php
index 9f2797060..e40187d34 100644
--- a/packages/graphql-printer/src/Blocks/Document/ArgumentTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/ArgumentTest.php
@@ -36,7 +36,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new Argument($context, $argumentNode, $argumentType))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::argument($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/DirectiveDefinitionTest.php b/packages/graphql-printer/src/Blocks/Document/DirectiveDefinitionTest.php
index 06466fc12..bf08166a3 100644
--- a/packages/graphql-printer/src/Blocks/Document/DirectiveDefinitionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/DirectiveDefinitionTest.php
@@ -38,7 +38,7 @@ public function testSerialize(
$context = new Context($settings, null, null);
$actual = (new DirectiveDefinition($context, $definition))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::directiveDefinition($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/DirectiveTest.php b/packages/graphql-printer/src/Blocks/Document/DirectiveTest.php
index 77679720f..3d5a8bc54 100644
--- a/packages/graphql-printer/src/Blocks/Document/DirectiveTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/DirectiveTest.php
@@ -38,11 +38,11 @@ public function testSerialize(
?Schema $schema,
): void {
$collector = new Collector();
- $resolver = $directive ? $this->getDirectiveResolver($directive) : null;
+ $resolver = $directive !== null ? $this->getDirectiveResolver($directive) : null;
$context = new Context($settings, $resolver, $schema);
$actual = (new Directive($context, $node))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::directive($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/DocumentTest.php b/packages/graphql-printer/src/Blocks/Document/DocumentTest.php
index dfdf56832..c95b8418b 100644
--- a/packages/graphql-printer/src/Blocks/Document/DocumentTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/DocumentTest.php
@@ -34,7 +34,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new Document($context, $document))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::parse($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/EnumTypeDefinitionTest.php b/packages/graphql-printer/src/Blocks/Document/EnumTypeDefinitionTest.php
index 0f60bb18a..51a5669d4 100644
--- a/packages/graphql-printer/src/Blocks/Document/EnumTypeDefinitionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/EnumTypeDefinitionTest.php
@@ -33,7 +33,7 @@ public function testSerialize(
$context = new Context($settings, null, null);
$actual = (new EnumTypeDefinition($context, $type))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::enumTypeDefinition($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/EnumTypeExtensionTest.php b/packages/graphql-printer/src/Blocks/Document/EnumTypeExtensionTest.php
index 80944adea..86bda8fb1 100644
--- a/packages/graphql-printer/src/Blocks/Document/EnumTypeExtensionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/EnumTypeExtensionTest.php
@@ -32,7 +32,7 @@ public function testSerialize(
$context = new Context($settings, null, null);
$actual = (new EnumTypeExtension($context, $type))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::enumTypeExtension($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/Field.php b/packages/graphql-printer/src/Blocks/Document/Field.php
index acdb175a6..72a468e45 100644
--- a/packages/graphql-printer/src/Blocks/Document/Field.php
+++ b/packages/graphql-printer/src/Blocks/Document/Field.php
@@ -38,7 +38,7 @@ protected function name(): string {
#[Override]
protected function prefix(): ?string {
$definition = $this->getDefinition();
- $type = $definition->alias
+ $type = $definition->alias !== null
? "{$definition->alias->value}:"
: '';
@@ -49,7 +49,7 @@ protected function prefix(): ?string {
protected function content(Collector $collector, int $level, int $used): string {
// Print?
$parent = $this->type;
- $type = $parent
+ $type = $parent !== null
? $this->getContext()->getField($parent, $this->name())?->getType()
: null;
@@ -61,12 +61,12 @@ protected function content(Collector $collector, int $level, int $used): string
$content = parent::content($collector, $level, $used);
// Statistics
- if ($content) {
- if ($parent) {
+ if ($content !== '') {
+ if ($parent !== null) {
$collector->addUsedType($this->getTypeName($parent));
}
- if ($type) {
+ if ($type !== null) {
$collector->addUsedType($this->getTypeName($type));
}
}
@@ -86,7 +86,7 @@ protected function arguments(bool $multiline): ?Block {
$definition->arguments,
static function (ArgumentNode $argument) use ($context, $type, $field): TypeNode|Type|null {
$name = $argument->name->value;
- $type = $type
+ $type = $type !== null
? $context->getFieldArgument($type, $field, $name)?->getType()
: null;
@@ -100,10 +100,10 @@ static function (ArgumentNode $argument) use ($context, $type, $field): TypeNode
#[Override]
protected function fields(bool $multiline): ?Block {
$definition = $this->getDefinition();
- $type = $this->type
+ $type = $this->type !== null
? $this->getContext()->getField($this->type, $this->name())?->getType()
: null;
- $set = $definition->selectionSet
+ $set = $definition->selectionSet !== null
? new SelectionSet($this->getContext(), $definition->selectionSet, $type)
: null;
diff --git a/packages/graphql-printer/src/Blocks/Document/FieldTest.php b/packages/graphql-printer/src/Blocks/Document/FieldTest.php
index cb780b3d2..ce31f95ef 100644
--- a/packages/graphql-printer/src/Blocks/Document/FieldTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/FieldTest.php
@@ -38,7 +38,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new Field($context, $definition, $type))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::field($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/FragmentDefinition.php b/packages/graphql-printer/src/Blocks/Document/FragmentDefinition.php
index 37d99d89a..a1c48618f 100644
--- a/packages/graphql-printer/src/Blocks/Document/FragmentDefinition.php
+++ b/packages/graphql-printer/src/Blocks/Document/FragmentDefinition.php
@@ -34,7 +34,7 @@ protected function content(Collector $collector, int $level, int $used): string
$content = parent::content($collector, $level, $used);
// Statistics
- if ($content) {
+ if ($content !== '') {
$collector->addUsedType($this->getTypeName($this->getDefinition()->typeCondition));
}
diff --git a/packages/graphql-printer/src/Blocks/Document/FragmentDefinitionTest.php b/packages/graphql-printer/src/Blocks/Document/FragmentDefinitionTest.php
index dd04244cc..1d5603d27 100644
--- a/packages/graphql-printer/src/Blocks/Document/FragmentDefinitionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/FragmentDefinitionTest.php
@@ -34,7 +34,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new FragmentDefinition($context, $definition))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::fragmentDefinition($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/FragmentSpread.php b/packages/graphql-printer/src/Blocks/Document/FragmentSpread.php
index dc0f25ce2..8bc1fc6fb 100644
--- a/packages/graphql-printer/src/Blocks/Document/FragmentSpread.php
+++ b/packages/graphql-printer/src/Blocks/Document/FragmentSpread.php
@@ -49,7 +49,7 @@ protected function content(Collector $collector, int $level, int $used): string
$content = parent::content($collector, $level, $used);
// Statistics
- if ($content && $this->type) {
+ if ($content !== '' && $this->type !== null) {
$collector->addUsedType($this->getTypeName($this->type));
}
diff --git a/packages/graphql-printer/src/Blocks/Document/FragmentSpreadTest.php b/packages/graphql-printer/src/Blocks/Document/FragmentSpreadTest.php
index 2c23a6757..07282a0cc 100644
--- a/packages/graphql-printer/src/Blocks/Document/FragmentSpreadTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/FragmentSpreadTest.php
@@ -39,7 +39,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new FragmentSpread($context, $definition, $type))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::fragment($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/InlineFragment.php b/packages/graphql-printer/src/Blocks/Document/InlineFragment.php
index 2d8a39560..990fc89c1 100644
--- a/packages/graphql-printer/src/Blocks/Document/InlineFragment.php
+++ b/packages/graphql-printer/src/Blocks/Document/InlineFragment.php
@@ -36,7 +36,7 @@ public function getName(): string {
$name = '...';
$type = $this->getDefinition()->typeCondition->name->value ?? null;
- if ($type) {
+ if ($type !== null) {
$space = $this->space();
$name = "{$name}{$space}on{$space}{$type}";
}
@@ -55,7 +55,7 @@ protected function content(Collector $collector, int $level, int $used): string
$content = parent::content($collector, $level, $used);
// Statistics
- if ($content && $this->type) {
+ if ($content !== '' && $this->type !== null) {
$collector->addUsedType($this->getTypeName($this->type));
}
diff --git a/packages/graphql-printer/src/Blocks/Document/InlineFragmentTest.php b/packages/graphql-printer/src/Blocks/Document/InlineFragmentTest.php
index 0443b94f2..101aae4ec 100644
--- a/packages/graphql-printer/src/Blocks/Document/InlineFragmentTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/InlineFragmentTest.php
@@ -39,7 +39,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new InlineFragment($context, $definition, $type))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::fragment($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/InputObjectTypeDefinitionTest.php b/packages/graphql-printer/src/Blocks/Document/InputObjectTypeDefinitionTest.php
index 0982fa8af..69399b451 100644
--- a/packages/graphql-printer/src/Blocks/Document/InputObjectTypeDefinitionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/InputObjectTypeDefinitionTest.php
@@ -34,7 +34,7 @@ public function testSerialize(
$context = new Context($settings, null, null);
$actual = (new InputObjectTypeDefinition($context, $definition))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::inputObjectTypeDefinition($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/InputObjectTypeExtensionTest.php b/packages/graphql-printer/src/Blocks/Document/InputObjectTypeExtensionTest.php
index ed04bf212..4a3387108 100644
--- a/packages/graphql-printer/src/Blocks/Document/InputObjectTypeExtensionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/InputObjectTypeExtensionTest.php
@@ -35,7 +35,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new InputObjectTypeExtension($context, $definition))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::inputObjectTypeExtension($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/InterfaceTypeDefinitionTest.php b/packages/graphql-printer/src/Blocks/Document/InterfaceTypeDefinitionTest.php
index 5d61846b0..c2e147168 100644
--- a/packages/graphql-printer/src/Blocks/Document/InterfaceTypeDefinitionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/InterfaceTypeDefinitionTest.php
@@ -34,7 +34,7 @@ public function testSerialize(
$context = new Context($settings, null, null);
$actual = (new InterfaceTypeDefinition($context, $definition))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::interfaceTypeDefinition($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/InterfaceTypeExtensionTest.php b/packages/graphql-printer/src/Blocks/Document/InterfaceTypeExtensionTest.php
index cf13257ea..82bce4b04 100644
--- a/packages/graphql-printer/src/Blocks/Document/InterfaceTypeExtensionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/InterfaceTypeExtensionTest.php
@@ -34,7 +34,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new InterfaceTypeExtension($context, $definition))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::interfaceTypeExtension($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/ObjectTypeDefinitionTest.php b/packages/graphql-printer/src/Blocks/Document/ObjectTypeDefinitionTest.php
index fc8620513..930df5f4b 100644
--- a/packages/graphql-printer/src/Blocks/Document/ObjectTypeDefinitionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/ObjectTypeDefinitionTest.php
@@ -34,7 +34,7 @@ public function testSerialize(
$context = new Context($settings, null, null);
$actual = (new ObjectTypeDefinition($context, $definition))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::objectTypeDefinition($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/ObjectTypeExtensionTest.php b/packages/graphql-printer/src/Blocks/Document/ObjectTypeExtensionTest.php
index 9fd8a770f..458a6700f 100644
--- a/packages/graphql-printer/src/Blocks/Document/ObjectTypeExtensionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/ObjectTypeExtensionTest.php
@@ -34,7 +34,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new ObjectTypeExtension($context, $definition))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::objectTypeExtension($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/OperationDefinition.php b/packages/graphql-printer/src/Blocks/Document/OperationDefinition.php
index 2cd520097..593ddd6bf 100644
--- a/packages/graphql-printer/src/Blocks/Document/OperationDefinition.php
+++ b/packages/graphql-printer/src/Blocks/Document/OperationDefinition.php
@@ -47,7 +47,7 @@ protected function content(Collector $collector, int $level, int $used): string
$content = parent::content($collector, $level, $used);
// Statistics
- if ($content && $type) {
+ if ($content !== '' && $type !== null) {
$collector->addUsedType($this->getTypeName($type));
}
diff --git a/packages/graphql-printer/src/Blocks/Document/OperationDefinitionTest.php b/packages/graphql-printer/src/Blocks/Document/OperationDefinitionTest.php
index b8844b358..9279b560a 100644
--- a/packages/graphql-printer/src/Blocks/Document/OperationDefinitionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/OperationDefinitionTest.php
@@ -38,7 +38,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new OperationDefinition($context, $definition, $type))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::operationDefinition($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/ScalarTypeDefinitionTest.php b/packages/graphql-printer/src/Blocks/Document/ScalarTypeDefinitionTest.php
index 2be371720..60a03dfee 100644
--- a/packages/graphql-printer/src/Blocks/Document/ScalarTypeDefinitionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/ScalarTypeDefinitionTest.php
@@ -33,7 +33,7 @@ public function testSerialize(
$context = new Context($settings, null, null);
$actual = (new ScalarTypeDefinition($context, $type))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::scalarTypeDefinition($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/ScalarTypeExtensionTest.php b/packages/graphql-printer/src/Blocks/Document/ScalarTypeExtensionTest.php
index d11d85c63..293235167 100644
--- a/packages/graphql-printer/src/Blocks/Document/ScalarTypeExtensionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/ScalarTypeExtensionTest.php
@@ -31,7 +31,7 @@ public function testSerialize(
$context = new Context($settings, null, null);
$actual = (new ScalarTypeExtension($context, $type))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::scalarTypeExtension($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/SchemaDefinition.php b/packages/graphql-printer/src/Blocks/Document/SchemaDefinition.php
index c2f397832..5539ec954 100644
--- a/packages/graphql-printer/src/Blocks/Document/SchemaDefinition.php
+++ b/packages/graphql-printer/src/Blocks/Document/SchemaDefinition.php
@@ -85,7 +85,7 @@ static function (NamedTypeNode|ObjectType $type, string $operation) use ($defaul
ARRAY_FILTER_USE_BOTH,
);
- return !$nonStandard;
+ return $nonStandard === [];
}
/**
@@ -106,7 +106,7 @@ private function getOperationsTypes(): array {
foreach ($operations as $operation => $type) {
$type = $definition->getOperationType($operation);
- if ($type) {
+ if ($type !== null) {
$operations[$operation] = $type;
}
}
diff --git a/packages/graphql-printer/src/Blocks/Document/SchemaDefinitionTest.php b/packages/graphql-printer/src/Blocks/Document/SchemaDefinitionTest.php
index 4285a6a02..3a79288b7 100644
--- a/packages/graphql-printer/src/Blocks/Document/SchemaDefinitionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/SchemaDefinitionTest.php
@@ -39,7 +39,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new SchemaDefinition($context, $definition))->serialize($collector, $level, $used);
- if ($expected && !str_starts_with($actual, '"""')) {
+ if ($expected !== '' && !str_starts_with($actual, '"""')) {
// https://github.com/webonyx/graphql-php/issues/1027
Parser::schemaDefinition($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/SchemaExtensionTest.php b/packages/graphql-printer/src/Blocks/Document/SchemaExtensionTest.php
index 00fd75d92..fa247a5ab 100644
--- a/packages/graphql-printer/src/Blocks/Document/SchemaExtensionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/SchemaExtensionTest.php
@@ -36,7 +36,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new SchemaExtension($context, $node))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::schemaTypeExtension($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/UnionTypeDefinitionTest.php b/packages/graphql-printer/src/Blocks/Document/UnionTypeDefinitionTest.php
index bfa8786ce..912afdaeb 100644
--- a/packages/graphql-printer/src/Blocks/Document/UnionTypeDefinitionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/UnionTypeDefinitionTest.php
@@ -35,7 +35,7 @@ public function testSerialize(
$context = new Context($settings, null, null);
$actual = (new UnionTypeDefinition($context, $type))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::unionTypeDefinition($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/UnionTypeExtensionTest.php b/packages/graphql-printer/src/Blocks/Document/UnionTypeExtensionTest.php
index 6953b752e..e7dd813e4 100644
--- a/packages/graphql-printer/src/Blocks/Document/UnionTypeExtensionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/UnionTypeExtensionTest.php
@@ -35,7 +35,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new UnionTypeExtension($context, $type))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::unionTypeExtension($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/Value.php b/packages/graphql-printer/src/Blocks/Document/Value.php
index 9395d4cfd..e51f45cdc 100644
--- a/packages/graphql-printer/src/Blocks/Document/Value.php
+++ b/packages/graphql-printer/src/Blocks/Document/Value.php
@@ -82,7 +82,7 @@ protected function content(Collector $collector, int $level, int $used): string
// Statistics
$collector->addUsed($content);
- if ($this->type) {
+ if ($this->type !== null) {
$collector->addUsedType($this->getTypeName($this->type));
}
diff --git a/packages/graphql-printer/src/Blocks/Document/ValueTest.php b/packages/graphql-printer/src/Blocks/Document/ValueTest.php
index 43a1da5da..ea8cff2bf 100644
--- a/packages/graphql-printer/src/Blocks/Document/ValueTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/ValueTest.php
@@ -52,7 +52,7 @@ public function testSerialize(
$actual = (new Value($context, $node, $type))->serialize($collector, $level, $used);
$parsed = null;
- if ($expected) {
+ if ($expected !== '') {
$parsed = Parser::valueLiteral($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/Document/VariableDefinition.php b/packages/graphql-printer/src/Blocks/Document/VariableDefinition.php
index b455f1e64..99048c8f6 100644
--- a/packages/graphql-printer/src/Blocks/Document/VariableDefinition.php
+++ b/packages/graphql-printer/src/Blocks/Document/VariableDefinition.php
@@ -37,7 +37,7 @@ protected function type(bool $multiline): ?Block {
#[Override]
protected function value(bool $multiline): ?Block {
$definition = $this->getDefinition();
- $value = $definition->defaultValue
+ $value = $definition->defaultValue !== null
? new Value($this->getContext(), $definition->defaultValue, $definition->type)
: null;
diff --git a/packages/graphql-printer/src/Blocks/Document/VariableDefinitionTest.php b/packages/graphql-printer/src/Blocks/Document/VariableDefinitionTest.php
index 1052e9512..f8fb9f6e9 100644
--- a/packages/graphql-printer/src/Blocks/Document/VariableDefinitionTest.php
+++ b/packages/graphql-printer/src/Blocks/Document/VariableDefinitionTest.php
@@ -34,7 +34,7 @@ public function testSerialize(
$context = new Context($settings, null, $schema);
$actual = (new VariableDefinition($context, $definition))->serialize($collector, $level, $used);
- if ($expected) {
+ if ($expected !== '') {
Parser::variableDefinition($actual);
}
diff --git a/packages/graphql-printer/src/Blocks/ListBlock.php b/packages/graphql-printer/src/Blocks/ListBlock.php
index 3f4ca4d0c..eff028145 100644
--- a/packages/graphql-printer/src/Blocks/ListBlock.php
+++ b/packages/graphql-printer/src/Blocks/ListBlock.php
@@ -135,7 +135,7 @@ protected function content(Collector $collector, int $level, int $used): string
$blockContent = $block->serialize($collector, $blockLevel, $used);
$blockMultiline = $this->isStringMultiline($blockContent);
- if (!$blockContent) {
+ if ($blockContent === '') {
continue;
}
@@ -160,7 +160,7 @@ protected function content(Collector $collector, int $level, int $used): string
}
// Empty?
- if (!$serialized) {
+ if ($serialized === []) {
return $this->getEmptyValue();
}
@@ -196,12 +196,12 @@ protected function content(Collector $collector, int $level, int $used): string
}
// Prefix & Suffix
- if ($prefix) {
+ if ($prefix !== '') {
$prefix = $multiline ? $prefix.$eol : $prefix;
$content = "{$prefix}{$content}";
}
- if ($suffix) {
+ if ($suffix !== '') {
$indent = $multiline ? $eol.$this->indent($level) : '';
$content .= "{$indent}{$suffix}";
}
diff --git a/packages/graphql-printer/src/Blocks/Printer/PrintableList.php b/packages/graphql-printer/src/Blocks/Printer/PrintableList.php
index 60fcc97ab..01a557476 100644
--- a/packages/graphql-printer/src/Blocks/Printer/PrintableList.php
+++ b/packages/graphql-printer/src/Blocks/Printer/PrintableList.php
@@ -68,7 +68,7 @@ protected function getItems(): iterable {
protected function content(Collector $collector, int $level, int $used): string {
$content = parent::content($collector, $level, $used);
- if ($content && $this->isRoot()) {
+ if ($content !== '' && $this->isRoot()) {
$content = "{$this->indent($level)}{$content}";
if ($this->eof) {
@@ -131,9 +131,10 @@ public function offsetUnset(mixed $offset): void {
}
private function offset(?Block $offset): ?string {
- return $offset instanceof NamedBlock
- ? ($offset->getName() ?: null)
- : null;
+ $offset = $offset instanceof NamedBlock ? $offset->getName() : null;
+ $offset = $offset !== '' ? $offset : null;
+
+ return $offset;
}
//
}
diff --git a/packages/graphql-printer/src/Blocks/Types/DefinitionBlock.php b/packages/graphql-printer/src/Blocks/Types/DefinitionBlock.php
index 4eac65622..9cff9582c 100644
--- a/packages/graphql-printer/src/Blocks/Types/DefinitionBlock.php
+++ b/packages/graphql-printer/src/Blocks/Types/DefinitionBlock.php
@@ -52,12 +52,12 @@ public function __construct(
#[Override]
public function getName(): string {
$name = $this->name();
- $prefix = $this->prefix();
+ $prefix = (string) $this->prefix();
- if ($prefix && $name) {
+ if ($prefix !== '' && $name !== '') {
$space = $this->space();
$name = "{$prefix}{$space}{$name}";
- } elseif ($prefix) {
+ } elseif ($prefix !== '') {
$name = $prefix;
} else {
// empty
@@ -95,7 +95,7 @@ protected function content(Collector $collector, int $level, int $used): string
// Description
$description = $this->description()?->serialize($collector, $level, $used);
- if ($description) {
+ if ($description !== null && $description !== '') {
$content .= "{$description}{$eol}{$indent}";
$used = $indentLength; // because new line has started
}
@@ -108,7 +108,7 @@ protected function content(Collector $collector, int $level, int $used): string
// Arguments
$arguments = $this->arguments($multiline);
- if ($arguments) {
+ if ($arguments !== null) {
$serialized = $arguments->serialize($collector, $level, $used);
$content .= $serialized;
@@ -124,7 +124,7 @@ protected function content(Collector $collector, int $level, int $used): string
$prefix = ":{$space}";
$type = $this->type($multiline);
- if ($type) {
+ if ($type !== null) {
$serialized = "{$prefix}{$type->serialize($collector, $level, $used + mb_strlen($prefix))}";
$content .= $serialized;
@@ -140,7 +140,7 @@ protected function content(Collector $collector, int $level, int $used): string
$prefix = "{$space}={$space}";
$value = $this->value($multiline);
- if ($value) {
+ if ($value !== null) {
$serialized = "{$prefix}{$value->serialize($collector, $level, $used + mb_strlen($prefix))}";
$content .= $serialized;
@@ -154,10 +154,8 @@ protected function content(Collector $collector, int $level, int $used): string
// Body
$body = $this->body($multiline);
- $serialized = $body
- ? $body->serialize($collector, $level, $used + $spaceLength)
- : '';
- $hasBody = $body && $serialized !== '';
+ $serialized = (string) $body?->serialize($collector, $level, $used + $spaceLength);
+ $hasBody = $body !== null && $serialized !== '';
if ($hasBody) {
if ($multiline || ($body instanceof UsageList && $this->isStringMultiline($serialized))) {
@@ -178,10 +176,8 @@ protected function content(Collector $collector, int $level, int $used): string
$directives = $this->getSettings()->isPrintDirectives()
? $this->directives($multiline)
: null;
- $serialized = $directives
- ? $directives->serialize($collector, $level, $indentLength)
- : '';
- $hasDirectives = $directives && $serialized !== '';
+ $serialized = (string) $directives?->serialize($collector, $level, $indentLength);
+ $hasDirectives = $directives !== null && $serialized !== '';
if ($hasDirectives) {
$multiline = true;
@@ -192,11 +188,9 @@ protected function content(Collector $collector, int $level, int $used): string
// Fields
$prefix = $space;
$fields = $this->fields($multiline);
- $serialized = $fields
- ? $fields->serialize($collector, $level, $used)
- : '';
+ $serialized = (string) $fields?->serialize($collector, $level, $used);
- if ($fields && $serialized !== '') {
+ if ($fields !== null && $serialized !== '') {
if ($multiline && ($hasBody || $hasDirectives)) {
$content .= "{$eol}{$indent}{$serialized}";
} else {
@@ -208,7 +202,7 @@ protected function content(Collector $collector, int $level, int $used): string
if (!($this instanceof ExtensionDefinitionBlock) && !($this instanceof ExecutableDefinitionBlock)) {
$name = $this->name();
- if ($name) {
+ if ($name !== '') {
if ($this instanceof DirectiveDefinition) {
$collector->addUsedDirective($name);
} elseif ($this instanceof TypeDefinitionBlock) {
@@ -358,7 +352,7 @@ protected function getDefinitionDirectives(): NodeList {
? $definition->extensionASTNodes
: [];
- foreach ($astExtensionNodes ?: [] as $astExtensionNode) {
+ foreach ($astExtensionNodes as $astExtensionNode) {
$directives = $directives->merge($astExtensionNode->directives ?? []);
}
diff --git a/packages/graphql-printer/src/Blocks/Types/DescriptionBlockTest.php b/packages/graphql-printer/src/Blocks/Types/DescriptionBlockTest.php
index 6223e294d..78f88ea6a 100644
--- a/packages/graphql-printer/src/Blocks/Types/DescriptionBlockTest.php
+++ b/packages/graphql-printer/src/Blocks/Types/DescriptionBlockTest.php
@@ -34,7 +34,7 @@ public function testSerialize(
self::assertEquals($expected, $actual);
- if ($expected) {
+ if ($expected !== '') {
Parser::valueLiteral($actual);
}
}
diff --git a/packages/graphql-printer/src/Blocks/Types/UsageList.php b/packages/graphql-printer/src/Blocks/Types/UsageList.php
index b6084207e..a67e823c5 100644
--- a/packages/graphql-printer/src/Blocks/Types/UsageList.php
+++ b/packages/graphql-printer/src/Blocks/Types/UsageList.php
@@ -56,15 +56,15 @@ protected function content(Collector $collector, int $level, int $used): string
$used = $used + mb_strlen("{$prefix}{$space}");
$content = parent::content($collector, $level, $used);
- if ($content) {
+ if ($content !== '') {
if ($this->isAlwaysMultiline() || $this->isStringMultiline($content)) {
$eol = $this->eol();
$indent = $this->indent($level);
- if ($prefix) {
+ if ($prefix !== '') {
$content = "{$prefix}{$eol}{$indent}{$content}";
}
- } elseif ($prefix) {
+ } elseif ($prefix !== '') {
$content = "{$prefix}{$space}{$content}";
} else {
// empty
diff --git a/packages/graphql-printer/src/Blocks/Values/ObjectValue.php b/packages/graphql-printer/src/Blocks/Values/ObjectValue.php
index debec93ad..a138ee08f 100644
--- a/packages/graphql-printer/src/Blocks/Values/ObjectValue.php
+++ b/packages/graphql-printer/src/Blocks/Values/ObjectValue.php
@@ -54,7 +54,7 @@ protected function isNormalized(): bool {
#[Override]
protected function block(string|int $key, mixed $item): Block {
$name = $item->name->value;
- $type = $this->type
+ $type = $this->type !== null
? $this->getContext()->getField($this->type, $name)?->getType()
: null;
diff --git a/packages/graphql-printer/src/Blocks/Values/StringValue.php b/packages/graphql-printer/src/Blocks/Values/StringValue.php
index 2f1cdda7e..9e00b5b2f 100644
--- a/packages/graphql-printer/src/Blocks/Values/StringValue.php
+++ b/packages/graphql-printer/src/Blocks/Values/StringValue.php
@@ -44,7 +44,7 @@ protected function content(Collector $collector, int $level, int $used): string
$content = $this->getString();
// Whitespace only? (it cannot be rendered as BlockString)
- if (preg_match('/^\h+$/u', $content)) {
+ if (preg_match('/^\h+$/u', $content) > 0) {
return json_encode($content, JSON_THROW_ON_ERROR);
}
diff --git a/packages/graphql-printer/src/Misc/Context.php b/packages/graphql-printer/src/Misc/Context.php
index 1684dfa1b..0f55a2e97 100644
--- a/packages/graphql-printer/src/Misc/Context.php
+++ b/packages/graphql-printer/src/Misc/Context.php
@@ -102,7 +102,7 @@ public function getOperationsDefaultTypes(): array {
public function getOperationType(string $operation): (Type&NamedType)|null {
$type = $this->getSchema()?->getOperationType($operation);
- if (!$type && $this->getSchema()) {
+ if ($type === null && $this->getSchema() !== null) {
throw new TypeNotFound($operation);
}
@@ -122,7 +122,7 @@ public function getTypes(): array {
public function getType(string $name): (Type&NamedType)|null {
$type = $this->getSchema()?->getType($name);
- if (!$type && $this->getSchema()) {
+ if ($type === null && $this->getSchema() !== null) {
throw new TypeNotFound($name);
}
@@ -131,7 +131,7 @@ public function getType(string $name): (Type&NamedType)|null {
public function isTypeAllowed(string $type): bool {
// Schema?
- if (!$this->getSchema()) {
+ if ($this->getSchema() === null) {
return true;
}
@@ -233,7 +233,7 @@ public function getDirective(string $name): DirectiveDefinitionNode|Directive|nu
$directive = $this->getSchema()?->getDirective($name)
?? $this->getDirectiveResolver()?->getDefinition($name);
- if (!$directive && $this->getSchema()) {
+ if ($directive === null && $this->getSchema() !== null) {
throw new DirectiveDefinitionNotFound($name);
}
@@ -316,7 +316,7 @@ public function getDirectiveArgument(DirectiveNode $object, string $name): Input
// empty
}
- if ($this->getSchema() && !$argument) {
+ if ($argument === null && $this->getSchema() !== null) {
throw new DirectiveArgumentNotFound("@{$directive}", $name);
}
@@ -335,7 +335,7 @@ public function getField((TypeNode&Node)|Type $object, string $name): InputObjec
$field = $definition->findField($name);
}
- if ($this->getSchema() && !$field) {
+ if ($field === null && $this->getSchema() !== null) {
throw new FieldNotFound($type, $name);
}
@@ -355,7 +355,7 @@ public function getFieldArgument((TypeNode&Node)|Type $object, string $field, st
}
}
- if ($this->getSchema() && !$argument) {
+ if ($argument === null && $this->getSchema() !== null) {
throw new FieldArgumentNotFound($this->getTypeName($object), $field, $name);
}
diff --git a/packages/graphql-printer/src/Printer.php b/packages/graphql-printer/src/Printer.php
index 4e79e768a..e1e7b59de 100644
--- a/packages/graphql-printer/src/Printer.php
+++ b/packages/graphql-printer/src/Printer.php
@@ -202,7 +202,7 @@ protected function process(
if ($directives) {
$directive = $context->getDirective(mb_substr($name, 1));
- if ($directive) {
+ if ($directive !== null) {
$block = $this->getBlock($context, $directive);
$printed[$name] = true;
}
@@ -210,14 +210,14 @@ protected function process(
} else {
$type = $context->getType($name);
- if ($type) {
+ if ($type !== null) {
$block = $this->getBlock($context, $type);
$printed[$name] = true;
}
}
// Stack
- if ($block && !isset($output[$block]) && !isset($root[$block])) {
+ if ($block !== null && !isset($output[$block]) && !isset($root[$block])) {
$statistics = new Collector();
$output[] = $this->analyze($statistics, $block, $level, $used);
$statistics = $collector->addUsed($statistics);
diff --git a/packages/graphql-printer/src/PrinterTest.php b/packages/graphql-printer/src/PrinterTest.php
index fc5bcc312..ea665655d 100644
--- a/packages/graphql-printer/src/PrinterTest.php
+++ b/packages/graphql-printer/src/PrinterTest.php
@@ -54,7 +54,7 @@ public function testPrint(
): void {
$schema = $schemaFactory($this);
$printer = new Printer($settings, null, $schema);
- $type = $typeFactory ? $typeFactory($this, $schema) : null;
+ $type = $typeFactory !== null ? $typeFactory($this, $schema) : null;
$printable = $printableFactory($this, $schema);
$actual = $printer->print($printable, $level, $used, $type);
@@ -83,7 +83,7 @@ public function testExport(
): void {
$schema = $schemaFactory($this);
$printer = new Printer($settings, null, $schema);
- $type = $typeFactory ? $typeFactory($this, $schema) : null;
+ $type = $typeFactory !== null ? $typeFactory($this, $schema) : null;
$exportable = $exportableFactory($this, $schema);
$actual = $printer->export($exportable, $level, $used, $type);
diff --git a/packages/graphql/UPGRADE.md b/packages/graphql/UPGRADE.md
index 2b169d921..576e145e8 100644
--- a/packages/graphql/UPGRADE.md
+++ b/packages/graphql/UPGRADE.md
@@ -60,6 +60,8 @@ Please also see [changelog](https://github.com/LastDragon-ru/lara-asp/releases)
}
```
+* [`GraphQLAssertions`][code-links/a6029821bb9d8f2e] methods updated to allow `null` for `$message` argument.
+
## API
This section is actual only if you are extending the package. Please review and update (listed the most significant changes only):
diff --git a/packages/graphql/src/Builder/BuilderInfoDetector.php b/packages/graphql/src/Builder/BuilderInfoDetector.php
index 4e9fd1d5f..f3b846bb9 100644
--- a/packages/graphql/src/Builder/BuilderInfoDetector.php
+++ b/packages/graphql/src/Builder/BuilderInfoDetector.php
@@ -85,7 +85,7 @@ protected function getSourceBuilderInfo(
$reason = $exception;
}
- if (!$builder) {
+ if ($builder === null) {
throw new BuilderUnknown($source, $reason);
}
@@ -133,7 +133,7 @@ static function (Directive $directive): bool {
);
$directive = reset($directives);
- if ($directive) {
+ if ($directive instanceof Directive) {
$type = null;
if ($directive instanceof PaginateDirective) {
@@ -176,7 +176,7 @@ public function isArgument(BaseDirective $directive, string $argument): bool {
$resolver = $directive->getResolverFromArgument($argument);
$return = $this->getCallableReturnType($resolver);
- if ($return) {
+ if ($return !== null) {
$type = $return;
}
@@ -204,7 +204,7 @@ private function getCallableReturnType(Closure $resolver): ?string {
$return = $return instanceof ReflectionNamedType
? $return->getName()
: null;
- $return = $return && class_exists($return)
+ $return = $return !== null && class_exists($return)
? $return
: null;
diff --git a/packages/graphql/src/Builder/Defaults/BuilderFieldResolver.php b/packages/graphql/src/Builder/Defaults/BuilderFieldResolver.php
index 19fdc736a..bea323f62 100644
--- a/packages/graphql/src/Builder/Defaults/BuilderFieldResolver.php
+++ b/packages/graphql/src/Builder/Defaults/BuilderFieldResolver.php
@@ -23,7 +23,7 @@ public function __construct(
#[Override]
public function getField(object $builder, Field $field): string {
- return $builder instanceof ScoutBuilder && $this->resolver
+ return $builder instanceof ScoutBuilder && $this->resolver !== null
? $this->resolver->getField($builder->model, new Property(...$field->getPath()))
: implode('.', $field->getPath());
}
diff --git a/packages/graphql/src/Builder/Directives/HandlerDirective.php b/packages/graphql/src/Builder/Directives/HandlerDirective.php
index bbabe1c2c..3fe25e882 100644
--- a/packages/graphql/src/Builder/Directives/HandlerDirective.php
+++ b/packages/graphql/src/Builder/Directives/HandlerDirective.php
@@ -44,7 +44,6 @@
use function array_map;
use function count;
use function is_array;
-use function reset;
/**
* @see HandlerContextBuilderInfo
@@ -201,7 +200,7 @@ protected function call(
$field = $field->getChild($name);
$value = $argument;
- $op = reset($operators);
+ $op = $operators[0] ?? null;
if (count($operators) > 1) {
throw new ConditionTooManyOperators(
@@ -216,7 +215,7 @@ static function (Operator $operator): string {
}
// Operator?
- if (!$op || !$value) {
+ if ($op === null || $value === null) {
throw new ConditionEmpty();
}
@@ -287,17 +286,17 @@ protected function getArgumentTypeDefinitionNode(
$provider = $context->get(HandlerContextOperators::class)?->value;
$operator = $provider?->getOperator($manipulator, $operator, $argument, $context);
- if (!$operator) {
+ if ($operator === null) {
return null;
}
// Type
- $definition = $context->get(HandlerContextImplicit::class)?->value
+ $definition = $context->get(HandlerContextImplicit::class)?->value === true
? $manipulator->getTypeDefinition($manipulator->getOriginType($argument->getField()))
: $argument->getTypeDefinition();
$source = $manipulator->getTypeSource($definition);
$type = $operator->getFieldType($manipulator, $source, $context);
- $type = $type ? Parser::typeReference($type) : null;
+ $type = $type !== null ? Parser::typeReference($type) : null;
return $type;
}
diff --git a/packages/graphql/src/Builder/Directives/OperatorDirective.php b/packages/graphql/src/Builder/Directives/OperatorDirective.php
index 3c6e4c663..00f386fce 100644
--- a/packages/graphql/src/Builder/Directives/OperatorDirective.php
+++ b/packages/graphql/src/Builder/Directives/OperatorDirective.php
@@ -72,7 +72,7 @@ public function isAvailable(TypeProvider $provider, TypeSource $source, Context
// Builder?
$builder = $context->get(HandlerContextBuilderInfo::class)?->value->getBuilder();
- if (!$builder || !$this->isBuilderSupported($builder)) {
+ if ($builder === null || !$this->isBuilderSupported($builder)) {
return false;
}
diff --git a/packages/graphql/src/Builder/Exceptions/BuilderUnknown.php b/packages/graphql/src/Builder/Exceptions/BuilderUnknown.php
index 81ce10d68..8d490b87f 100644
--- a/packages/graphql/src/Builder/Exceptions/BuilderUnknown.php
+++ b/packages/graphql/src/Builder/Exceptions/BuilderUnknown.php
@@ -15,7 +15,7 @@ public function __construct(
parent::__construct(
sprintf(
'Impossible to determine builder type for `%s`.',
- $this->source ?: 'null',
+ $this->source ?? 'null',
),
$previous,
);
diff --git a/packages/graphql/src/Builder/Field.php b/packages/graphql/src/Builder/Field.php
index c35aeb109..b6c1b7729 100644
--- a/packages/graphql/src/Builder/Field.php
+++ b/packages/graphql/src/Builder/Field.php
@@ -19,7 +19,7 @@ final public function __construct(
}
public function getName(): string {
- return end($this->path) ?: '';
+ return (string) end($this->path);
}
/**
diff --git a/packages/graphql/src/Builder/Manipulator.php b/packages/graphql/src/Builder/Manipulator.php
index 1675ea208..912fa0489 100644
--- a/packages/graphql/src/Builder/Manipulator.php
+++ b/packages/graphql/src/Builder/Manipulator.php
@@ -76,7 +76,7 @@ public function getType(string $definition, TypeSource $source, Context $context
// Create new
$node = $instance->getTypeDefinition($this, $source, $context, $name);
- if (!$node) {
+ if ($node === null) {
throw new TypeDefinitionImpossibleToCreateType($definition, $source, $context);
}
@@ -132,7 +132,7 @@ public function getOperatorDirective(
// Operators?
$provider = $context->get(HandlerContextOperators::class)?->value;
- if (!$provider) {
+ if ($provider === null) {
return null;
}
@@ -143,7 +143,7 @@ public function getOperatorDirective(
foreach ($directives as $directive) {
$directive = $provider->getOperator($this, $directive, $source, $context);
- if ($directive) {
+ if ($directive !== null) {
$instance = $directive;
break;
}
@@ -181,12 +181,12 @@ public function getOperatorField(
// Type?
$type = $operator->getFieldType($this, $source, $context);
- if (!$type) {
+ if ($type === null) {
throw new OperatorImpossibleToCreateField($operator, $source, $context);
}
// Definition
- $field = $field ?: $operator::getName();
+ $field ??= $operator::getName();
$directives = implode(
"\n",
array_map(
@@ -194,8 +194,9 @@ public function getOperatorField(
$directives,
),
);
- $description = $description ?: $operator->getFieldDescription();
- $description = BlockString::print((string) $description);
+ $description = BlockString::print(
+ (string) ($description ?? $operator->getFieldDescription()),
+ );
return <<findOperators($manipulator, $type, $level + 1, $processed);
}
diff --git a/packages/graphql/src/Builder/Traits/BuilderHelperFactory.php b/packages/graphql/src/Builder/Traits/BuilderHelperFactory.php
index baa2dc346..f701a0197 100644
--- a/packages/graphql/src/Builder/Traits/BuilderHelperFactory.php
+++ b/packages/graphql/src/Builder/Traits/BuilderHelperFactory.php
@@ -49,7 +49,7 @@ private function getHelper(object|string $builder): ?object {
if (!array_key_exists($builder, $this->instances)) {
$class = $this->getHelperClass($builder);
- $this->instances[$builder] = $class
+ $this->instances[$builder] = $class !== null
? $this->getContainerResolver()->getInstance()->make($class)
: null;
}
diff --git a/packages/graphql/src/Builder/Types/InputObject.php b/packages/graphql/src/Builder/Types/InputObject.php
index 14f06b625..d2faf4d0a 100644
--- a/packages/graphql/src/Builder/Types/InputObject.php
+++ b/packages/graphql/src/Builder/Types/InputObject.php
@@ -39,7 +39,6 @@
use function count;
use function is_a;
use function is_string;
-use function reset;
use function trim;
abstract class InputObject implements TypeDefinition {
@@ -110,7 +109,7 @@ public function getTypeDefinition(
// Add
$fieldDefinition = $this->getFieldDefinition($manipulator, $fieldSource, $context);
- if ($fieldDefinition) {
+ if ($fieldDefinition !== null) {
$definition->fields[] = $fieldDefinition;
}
}
@@ -137,7 +136,7 @@ protected function getOperators(
): array {
$type = $this->getTypeForOperators();
$provider = $context->get(HandlerContextOperators::class)?->value;
- $operators = $type && $provider
+ $operators = $type !== null && $provider !== null
? $provider->getOperators($manipulator, $type, $source, $context)
: [];
@@ -182,7 +181,7 @@ protected function isFieldConvertable(
}
// Convertable?
- $convertable = $context->get(HandlerContextImplicit::class)?->value
+ $convertable = $context->get(HandlerContextImplicit::class)?->value === true
? $this->isFieldConvertableImplicit($manipulator, $field, $context)
: $this->isFieldConvertableExplicit($manipulator, $field, $context);
@@ -221,19 +220,19 @@ protected function isFieldConvertableImplicit(
// Operator?
$operator = $this->getFieldOperatorDirective($manipulator, $field, $context, $this->getFieldMarkerOperator());
- if ($operator) {
+ if ($operator !== null) {
return true;
}
// Resolver?
$resolver = $manipulator->getDirective($field->getField(), FieldResolver::class);
- if ($resolver && !$this->isFieldConvertableResolver($manipulator, $field, $context, $resolver)) {
+ if ($resolver !== null && !$this->isFieldConvertableResolver($manipulator, $field, $context, $resolver)) {
return false;
}
// Object/Arguments allowed only if Resolver defined and convertable
- if (($field->hasArguments() || $field->isObject()) && !$resolver) {
+ if (($field->hasArguments() || $field->isObject()) && $resolver === null) {
return false;
}
@@ -264,7 +263,7 @@ protected function isFieldConvertableIgnored(
// Marker?
$marker = $this->getFieldMarkerIgnored();
- if (!$marker) {
+ if ($marker === null) {
return false;
}
@@ -306,7 +305,7 @@ protected function getFieldDefinition(
// Operator?
$operator = $this->getFieldOperator($manipulator, $field, $context);
- if (!$operator) {
+ if ($operator === null) {
return null;
}
@@ -333,13 +332,13 @@ protected function getFieldOperator(
): ?Operator {
$operator = $this->getFieldOperatorDirective($manipulator, $field, $context, $this->getFieldMarkerOperator());
- if (!$operator) {
+ if ($operator === null) {
$type = $this->getTypeForFieldOperator();
$provider = $context->get(HandlerContextOperators::class)?->value;
- if ($type && $provider) {
+ if ($type !== null && $provider !== null) {
$operators = $provider->getOperators($manipulator, $type, $field, $context);
- $operator = reset($operators) ?: null;
+ $operator = $operators[0] ?? null;
}
}
@@ -366,7 +365,7 @@ protected function getFieldOperatorDirective(
foreach ($nodes as $node) {
$operator = $manipulator->getOperatorDirective($node, $directive, $field, $context);
- if ($operator) {
+ if ($operator !== null) {
break;
}
}
@@ -390,8 +389,9 @@ protected function getFieldDescription(
$description = $description->value;
}
- if ($description) {
- $description = trim($description) ?: null;
+ if ($description !== null) {
+ $description = trim($description);
+ $description = $description !== '' ? $description : null;
}
return $description;
@@ -411,7 +411,7 @@ protected function getFieldDirectives(
if ($this->isFieldDirectiveAllowed($manipulator, $field, $context, $directive)) {
$node = $manipulator->getDirectiveNode($directive);
- if ($node) {
+ if ($node !== null) {
$directives[] = $node;
}
}
@@ -428,7 +428,7 @@ protected function isFieldDirectiveAllowed(
): bool {
// Explicit type is an `input` and we are expecting this type was created
// for the directive, so all field's directives are allowed.
- if (!$context->get(HandlerContextImplicit::class)?->value) {
+ if (!($context->get(HandlerContextImplicit::class)?->value === true)) {
if ($directive instanceof Operator) {
return is_a($directive, $this->getFieldMarkerOperator());
}
diff --git a/packages/graphql/src/Printer/DirectiveResolver.php b/packages/graphql/src/Printer/DirectiveResolver.php
index b5613b52f..58417c0aa 100644
--- a/packages/graphql/src/Printer/DirectiveResolver.php
+++ b/packages/graphql/src/Printer/DirectiveResolver.php
@@ -54,7 +54,7 @@ public function getDefinition(string $name): DirectiveDefinitionNode|GraphQLDire
$directive = null;
$class = $this->getDirectiveClass($name);
- if ($class) {
+ if ($class !== null) {
$document = Parser::parse($class::definition());
foreach ($document->definitions as $definition) {
@@ -120,7 +120,7 @@ private function registerDirectiveType(TypeDefinitionNode&Node $definition): voi
}
}
- if ($type) {
+ if ($type !== null) {
$this->registry->register($type);
}
}
diff --git a/packages/graphql/src/Printer/PrinterTest.php b/packages/graphql/src/Printer/PrinterTest.php
index 070ee8f3d..a88458ffc 100644
--- a/packages/graphql/src/Printer/PrinterTest.php
+++ b/packages/graphql/src/Printer/PrinterTest.php
@@ -65,7 +65,7 @@ public function testPrint(
$schema = $schemaFactory($this);
$schema = $this->useGraphQLSchema($schema)->getGraphQLSchema();
$printer = $this->app()->make(Printer::class)->setSettings($settings);
- $type = $typeFactory ? $typeFactory($this, $schema) : null;
+ $type = $typeFactory !== null ? $typeFactory($this, $schema) : null;
$printable = $printableFactory($this, $schema);
$actual = $printer->print($printable, $level, $used, $type);
@@ -92,7 +92,7 @@ public function testExport(
$schema = $schemaFactory($this);
$schema = $this->useGraphQLSchema($schema)->getGraphQLSchema();
$printer = $this->app()->make(Printer::class)->setSettings($settings);
- $type = $typeFactory ? $typeFactory($this, $schema) : null;
+ $type = $typeFactory !== null ? $typeFactory($this, $schema) : null;
$exportable = $exportableFactory($this, $schema);
$actual = $printer->export($exportable, $level, $used, $type);
diff --git a/packages/graphql/src/SearchBy/Directives/Directive.php b/packages/graphql/src/SearchBy/Directives/Directive.php
index 0edfcd2e5..2ce2a04bb 100644
--- a/packages/graphql/src/SearchBy/Directives/Directive.php
+++ b/packages/graphql/src/SearchBy/Directives/Directive.php
@@ -68,7 +68,7 @@ protected function getArgDefinitionType(
): ListTypeNode|NamedTypeNode|NonNullTypeNode {
$type = $this->getArgumentTypeDefinitionNode($manipulator, $document, $argument, $context, Root::class);
- if (!$type) {
+ if ($type === null) {
throw new FailedToCreateSearchCondition($argument);
}
diff --git a/packages/graphql/src/SearchBy/Directives/DirectiveTest.php b/packages/graphql/src/SearchBy/Directives/DirectiveTest.php
index a3b961704..8465e4190 100644
--- a/packages/graphql/src/SearchBy/Directives/DirectiveTest.php
+++ b/packages/graphql/src/SearchBy/Directives/DirectiveTest.php
@@ -104,7 +104,7 @@ protected function getPackageProviders(mixed $app): array {
*/
#[DataProvider('dataProviderManipulateArgDefinition')]
public function testManipulateArgDefinition(string $expected, string $graphql, ?Closure $prepare = null): void {
- if ($prepare) {
+ if ($prepare !== null) {
$prepare($this);
}
@@ -427,7 +427,7 @@ public function testHandleScoutBuilder(
$this->app()->make(DirectiveLocator::class)
->setResolved('search', SearchDirective::class);
- if ($resolver) {
+ if ($resolver !== null) {
$this->override(
BuilderFieldResolver::class,
static function (MockInterface $mock) use ($resolver): void {
@@ -440,7 +440,7 @@ static function (MockInterface $mock) use ($resolver): void {
);
}
- if ($fieldResolver) {
+ if ($fieldResolver !== null) {
$this->override(FieldResolver::class, $fieldResolver);
}
@@ -505,7 +505,7 @@ public function testHandleScoutBuilderV5Compat(
$this->app()->make(DirectiveLocator::class)
->setResolved('search', SearchDirective::class);
- if ($resolver) {
+ if ($resolver !== null) {
$this->override(
BuilderFieldResolver::class,
static function (MockInterface $mock) use ($resolver): void {
@@ -518,7 +518,7 @@ static function (MockInterface $mock) use ($resolver): void {
);
}
- if ($fieldResolver) {
+ if ($fieldResolver !== null) {
$this->override(FieldResolver::class, $fieldResolver);
}
diff --git a/packages/graphql/src/SearchBy/Operators/Comparison/EqualTest.php b/packages/graphql/src/SearchBy/Operators/Comparison/EqualTest.php
index 129b0154c..593fa9d42 100644
--- a/packages/graphql/src/SearchBy/Operators/Comparison/EqualTest.php
+++ b/packages/graphql/src/SearchBy/Operators/Comparison/EqualTest.php
@@ -81,7 +81,7 @@ public function testCallScoutBuilder(
?Closure $resolver,
?Closure $fieldResolver,
): void {
- if ($fieldResolver) {
+ if ($fieldResolver !== null) {
$this->override(FieldResolver::class, $fieldResolver);
}
diff --git a/packages/graphql/src/SearchBy/Operators/Comparison/InTest.php b/packages/graphql/src/SearchBy/Operators/Comparison/InTest.php
index 2fb887d90..f7f14ec17 100644
--- a/packages/graphql/src/SearchBy/Operators/Comparison/InTest.php
+++ b/packages/graphql/src/SearchBy/Operators/Comparison/InTest.php
@@ -81,7 +81,7 @@ public function testCallScoutBuilder(
?Closure $resolver,
?Closure $fieldResolver = null,
): void {
- if ($fieldResolver) {
+ if ($fieldResolver !== null) {
$this->override(FieldResolver::class, $fieldResolver);
}
diff --git a/packages/graphql/src/SearchBy/Operators/Comparison/NotInTest.php b/packages/graphql/src/SearchBy/Operators/Comparison/NotInTest.php
index faabd7934..0175616ed 100644
--- a/packages/graphql/src/SearchBy/Operators/Comparison/NotInTest.php
+++ b/packages/graphql/src/SearchBy/Operators/Comparison/NotInTest.php
@@ -84,7 +84,7 @@ public function testCallScoutBuilder(
?Closure $fieldResolver,
): void {
// Prepare
- if ($fieldResolver) {
+ if ($fieldResolver !== null) {
$this->override(FieldResolver::class, $fieldResolver);
}
diff --git a/packages/graphql/src/SearchBy/Operators/Complex/Relationship.php b/packages/graphql/src/SearchBy/Operators/Complex/Relationship.php
index 794c314f5..0c35881be 100644
--- a/packages/graphql/src/SearchBy/Operators/Complex/Relationship.php
+++ b/packages/graphql/src/SearchBy/Operators/Complex/Relationship.php
@@ -129,7 +129,7 @@ public function call(
$operator,
$count,
static function (EloquentBuilder $builder) use ($context, $relation, $handler, $alias, $has): void {
- if (!$alias || $alias === $relation->getRelationCountHash(false)) {
+ if ($alias === '' || $alias === $relation->getRelationCountHash(false)) {
$alias = $builder->getModel()->getTable();
}
diff --git a/packages/graphql/src/SearchBy/Operators/Logical/AllOf.php b/packages/graphql/src/SearchBy/Operators/Logical/AllOf.php
index 5dccf66b6..c15b0c340 100644
--- a/packages/graphql/src/SearchBy/Operators/Logical/AllOf.php
+++ b/packages/graphql/src/SearchBy/Operators/Logical/AllOf.php
@@ -31,7 +31,7 @@ public function getFieldDescription(): ?string {
#[Override]
public function getFieldType(TypeProvider $provider, TypeSource $source, Context $context): ?string {
$parent = parent::getFieldType($provider, $source, $context);
- $type = $parent ? "[{$parent}!]" : null;
+ $type = $parent !== null ? "[{$parent}!]" : null;
return $type;
}
diff --git a/packages/graphql/src/SearchBy/Operators/Logical/AllOfTest.php b/packages/graphql/src/SearchBy/Operators/Logical/AllOfTest.php
index f98442509..cc6dfb515 100644
--- a/packages/graphql/src/SearchBy/Operators/Logical/AllOfTest.php
+++ b/packages/graphql/src/SearchBy/Operators/Logical/AllOfTest.php
@@ -83,7 +83,7 @@ public function testCallScoutBuilder(
?Closure $resolver,
?Closure $fieldResolver,
): void {
- if ($fieldResolver) {
+ if ($fieldResolver !== null) {
$this->override(FieldResolver::class, $fieldResolver);
}
diff --git a/packages/graphql/src/SearchBy/Operators/Logical/AnyOf.php b/packages/graphql/src/SearchBy/Operators/Logical/AnyOf.php
index 2242b1ad9..047241f0f 100644
--- a/packages/graphql/src/SearchBy/Operators/Logical/AnyOf.php
+++ b/packages/graphql/src/SearchBy/Operators/Logical/AnyOf.php
@@ -24,7 +24,7 @@ public function getFieldDescription(): ?string {
#[Override]
public function getFieldType(TypeProvider $provider, TypeSource $source, Context $context): ?string {
$parent = parent::getFieldType($provider, $source, $context);
- $type = $parent ? "[{$parent}!]" : null;
+ $type = $parent !== null ? "[{$parent}!]" : null;
return $type;
}
diff --git a/packages/graphql/src/SearchBy/Types/Enumeration.php b/packages/graphql/src/SearchBy/Types/Enumeration.php
index d194fea53..64cab7419 100644
--- a/packages/graphql/src/SearchBy/Types/Enumeration.php
+++ b/packages/graphql/src/SearchBy/Types/Enumeration.php
@@ -47,16 +47,19 @@ public function getTypeDefinition(
// Operators?
$provider = $context->get(HandlerContextOperators::class)?->value;
- if (!$provider) {
+ if ($provider === null) {
return null;
}
// Operators
$type = $manipulator->getTypeSource($source->getType());
- $operators = $provider->getOperators($manipulator, $type->getTypeName(), $type, $context)
- ?: $provider->getOperators($manipulator, Operators::Enum, $type, $context);
+ $operators = $provider->getOperators($manipulator, $type->getTypeName(), $type, $context);
- if (!$operators) {
+ if ($operators === []) {
+ $operators = $provider->getOperators($manipulator, Operators::Enum, $type, $context);
+ }
+
+ if ($operators === []) {
return null;
}
diff --git a/packages/graphql/src/SearchBy/Types/Scalar.php b/packages/graphql/src/SearchBy/Types/Scalar.php
index e795531fa..0237915a9 100644
--- a/packages/graphql/src/SearchBy/Types/Scalar.php
+++ b/packages/graphql/src/SearchBy/Types/Scalar.php
@@ -47,7 +47,7 @@ public function getTypeDefinition(
// Operators?
$provider = $context->get(HandlerContextOperators::class)?->value;
- if (!$provider) {
+ if ($provider === null) {
return null;
}
@@ -55,7 +55,7 @@ public function getTypeDefinition(
$type = $manipulator->getTypeSource($source->getType());
$operators = $provider->getOperators($manipulator, $type->getTypeName(), $type, $context);
- if (!$operators) {
+ if ($operators === []) {
return null;
}
diff --git a/packages/graphql/src/SortBy/Directives/Directive.php b/packages/graphql/src/SortBy/Directives/Directive.php
index 8678a73b6..4cf97afc7 100644
--- a/packages/graphql/src/SortBy/Directives/Directive.php
+++ b/packages/graphql/src/SortBy/Directives/Directive.php
@@ -65,7 +65,7 @@ protected function getArgDefinitionType(
): ListTypeNode|NamedTypeNode|NonNullTypeNode {
$type = $this->getArgumentTypeDefinitionNode($manipulator, $document, $argument, $context, Root::class);
- if (!$type) {
+ if ($type === null) {
throw new FailedToCreateSortClause($argument);
}
diff --git a/packages/graphql/src/SortBy/Directives/DirectiveTest.php b/packages/graphql/src/SortBy/Directives/DirectiveTest.php
index 06052218e..8d1a22b1a 100644
--- a/packages/graphql/src/SortBy/Directives/DirectiveTest.php
+++ b/packages/graphql/src/SortBy/Directives/DirectiveTest.php
@@ -89,7 +89,7 @@ protected function getPackageProviders(mixed $app): array {
*/
#[DataProvider('dataProviderManipulateArgDefinition')]
public function testManipulateArgDefinition(string $expected, string $graphql, ?Closure $prepare = null): void {
- if ($prepare) {
+ if ($prepare !== null) {
$prepare($this);
}
@@ -192,7 +192,7 @@ public function testDirective(
mixed $value,
?Closure $prepare = null,
): void {
- if ($prepare) {
+ if ($prepare !== null) {
$prepare($this);
}
@@ -253,7 +253,7 @@ public function testDirectiveV5Compat(
$this->app()->bind(Root::class, V5::class);
$this->app()->bind(Clause::class, V5::class);
- if ($prepare) {
+ if ($prepare !== null) {
$prepare($this);
}
@@ -309,7 +309,7 @@ public function testHandleBuilder(
mixed $value,
?Closure $prepare = null,
): void {
- if ($prepare) {
+ if ($prepare !== null) {
$prepare($this);
}
@@ -371,7 +371,7 @@ public function testHandleBuilderV5Compat(
$this->app()->bind(Root::class, V5::class);
$this->app()->bind(Clause::class, V5::class);
- if ($prepare) {
+ if ($prepare !== null) {
$prepare($this);
}
@@ -437,7 +437,7 @@ public function testHandleScoutBuilder(
$this->app()->make(DirectiveLocator::class)
->setResolved('search', SearchDirective::class);
- if ($resolver) {
+ if ($resolver !== null) {
$this->override(
BuilderFieldResolver::class,
static function (MockInterface $mock) use ($resolver): void {
@@ -450,7 +450,7 @@ static function (MockInterface $mock) use ($resolver): void {
);
}
- if ($fieldResolver) {
+ if ($fieldResolver !== null) {
$this->override(FieldResolver::class, $fieldResolver);
}
@@ -515,7 +515,7 @@ public function testHandleScoutBuilderV5Compat(
$this->app()->make(DirectiveLocator::class)
->setResolved('search', SearchDirective::class);
- if ($resolver) {
+ if ($resolver !== null) {
$this->override(
BuilderFieldResolver::class,
static function (MockInterface $mock) use ($resolver): void {
@@ -528,7 +528,7 @@ static function (MockInterface $mock) use ($resolver): void {
);
}
- if ($fieldResolver) {
+ if ($fieldResolver !== null) {
$this->override(FieldResolver::class, $fieldResolver);
}
diff --git a/packages/graphql/src/SortBy/Operators/Sort.php b/packages/graphql/src/SortBy/Operators/Sort.php
index 21b59798e..ceb8b259a 100644
--- a/packages/graphql/src/SortBy/Operators/Sort.php
+++ b/packages/graphql/src/SortBy/Operators/Sort.php
@@ -79,7 +79,7 @@ public function call(
): object {
$sorter = $this->factory->create($builder);
- if ($sorter) {
+ if ($sorter !== null) {
$direction = $argument->value instanceof Direction ? $argument->value : Direction::Asc;
$nulls = $this->getNulls($sorter, $context, $direction);
diff --git a/packages/graphql/src/SortBy/Sorters/DatabaseSorter.php b/packages/graphql/src/SortBy/Sorters/DatabaseSorter.php
index beb6cf476..7c9c4f9bb 100644
--- a/packages/graphql/src/SortBy/Sorters/DatabaseSorter.php
+++ b/packages/graphql/src/SortBy/Sorters/DatabaseSorter.php
@@ -93,7 +93,7 @@ protected function sortByColumn(
$query = $builder instanceof EloquentBuilder ? $builder->getQuery() : $builder;
$columns = $query->columns ?? [];
- if (!$columns) {
+ if ($columns === []) {
$builder->addSelect('*');
}
diff --git a/packages/graphql/src/SortBy/Sorters/EloquentSorter.php b/packages/graphql/src/SortBy/Sorters/EloquentSorter.php
index b61e2a260..907f8cf65 100644
--- a/packages/graphql/src/SortBy/Sorters/EloquentSorter.php
+++ b/packages/graphql/src/SortBy/Sorters/EloquentSorter.php
@@ -33,7 +33,7 @@ public function sort(object $builder, Field $field, Direction $direction, ?Nulls
// Column
$relation = $field->getParent()->getPath();
- if ($relation) {
+ if ($relation !== []) {
$column = $field->getName();
$column = $this->getRelationColumn($builder, $relation, $column, $direction);
} else {
@@ -126,7 +126,7 @@ protected function joinRelation(
$currentAlias,
"{$currentAlias}.{$relation->getOwnerKeyName()}",
'=',
- $parentAlias
+ $parentAlias !== ''
? "{$parentAlias}.{$relation->getForeignKeyName()}"
: $relation->getQualifiedForeignKeyName(),
);
@@ -138,7 +138,7 @@ static function (JoinClause $join) use ($relation, $currentAlias, $parentAlias):
$join->on(
"{$currentAlias}.{$relation->getForeignKeyName()}",
'=',
- $parentAlias
+ $parentAlias !== ''
? "{$parentAlias}.{$relation->getLocalKeyName()}"
: $relation->getQualifiedParentKeyName(),
);
@@ -155,7 +155,7 @@ static function (JoinClause $join) use ($relation, $currentAlias, $parentAlias):
$currentAlias,
"{$currentAlias}.{$relation->getForeignKeyName()}",
'=',
- $parentAlias
+ $parentAlias !== ''
? "{$parentAlias}.{$relation->getLocalKeyName()}"
: $relation->getQualifiedParentKeyName(),
);
@@ -173,7 +173,7 @@ class_exists(HasOneOrManyThrough::class) && $relation instanceof HasOneOrManyThr
$currentAlias,
"{$currentAlias}.{$currentAlias}_key",
'=',
- $parentAlias
+ $parentAlias !== ''
? "{$parentAlias}.{$relation->getLocalKeyName()}"
: $relation->getQualifiedLocalKeyName(),
);
@@ -183,7 +183,7 @@ class_exists(HasOneOrManyThrough::class) && $relation instanceof HasOneOrManyThr
$currentAlias,
"{$currentAlias}.{$relation->getParentKeyName()}",
'=',
- $parentAlias
+ $parentAlias !== ''
? "{$parentAlias}.{$relation->getRelatedKeyName()}"
: $relation->getQualifiedRelatedKeyName(),
);
diff --git a/packages/graphql/src/SortBy/Sorters/EloquentSorterTest.php b/packages/graphql/src/SortBy/Sorters/EloquentSorterTest.php
index f5677fc62..edcc833d8 100644
--- a/packages/graphql/src/SortBy/Sorters/EloquentSorterTest.php
+++ b/packages/graphql/src/SortBy/Sorters/EloquentSorterTest.php
@@ -61,7 +61,7 @@ public function testSort(
self::expectExceptionObject($expected);
}
- if ($resolver) {
+ if ($resolver !== null) {
$this->override(
BuilderFieldResolver::class,
static function (MockInterface $mock) use ($resolver): void {
diff --git a/packages/graphql/src/SortBy/Sorters/QuerySorterTest.php b/packages/graphql/src/SortBy/Sorters/QuerySorterTest.php
index 493697fbe..c2c2c962e 100644
--- a/packages/graphql/src/SortBy/Sorters/QuerySorterTest.php
+++ b/packages/graphql/src/SortBy/Sorters/QuerySorterTest.php
@@ -43,7 +43,7 @@ public function testSort(
self::expectExceptionObject($expected);
}
- if ($resolver) {
+ if ($resolver !== null) {
$this->override(
BuilderFieldResolver::class,
static function (MockInterface $mock) use ($resolver): void {
diff --git a/packages/graphql/src/SortBy/Sorters/ScoutSorter.php b/packages/graphql/src/SortBy/Sorters/ScoutSorter.php
index f8ddd169d..8ce62e222 100644
--- a/packages/graphql/src/SortBy/Sorters/ScoutSorter.php
+++ b/packages/graphql/src/SortBy/Sorters/ScoutSorter.php
@@ -29,7 +29,7 @@ public function isNullsSupported(): bool {
#[Override]
public function sort(object $builder, Field $field, Direction $direction, ?Nulls $nulls = null): object {
- if ($nulls) {
+ if ($nulls !== null) {
throw new NotImplemented('NULLs ordering');
}
diff --git a/packages/graphql/src/SortBy/Sorters/ScoutSorterTest.php b/packages/graphql/src/SortBy/Sorters/ScoutSorterTest.php
index 744103ddc..3d4f11af4 100644
--- a/packages/graphql/src/SortBy/Sorters/ScoutSorterTest.php
+++ b/packages/graphql/src/SortBy/Sorters/ScoutSorterTest.php
@@ -45,7 +45,7 @@ public function testSort(
self::expectExceptionObject($expected);
}
- if ($resolver) {
+ if ($resolver !== null) {
$this->override(
BuilderFieldResolver::class,
static function (MockInterface $mock) use ($resolver): void {
@@ -58,7 +58,7 @@ static function (MockInterface $mock) use ($resolver): void {
);
}
- if ($fieldResolver) {
+ if ($fieldResolver !== null) {
$this->override(FieldResolver::class, $fieldResolver);
}
diff --git a/packages/graphql/src/Stream/Directives/Directive.php b/packages/graphql/src/Stream/Directives/Directive.php
index 3619b47e9..5620ec98d 100644
--- a/packages/graphql/src/Stream/Directives/Directive.php
+++ b/packages/graphql/src/Stream/Directives/Directive.php
@@ -234,7 +234,7 @@ public function manipulateFieldDefinition(
$manipulator,
$source,
SearchByDirective::class,
- Cast::toString($repository->get("{$prefix}.search.name") ?: 'where'),
+ Cast::toString($repository->get("{$prefix}.search.name") ?? 'where'),
$manipulator::Placeholder,
);
}
@@ -251,7 +251,7 @@ public function manipulateFieldDefinition(
$manipulator,
$source,
SortByDirective::class,
- Cast::toString($repository->get("{$prefix}.sort.name") ?: 'order'),
+ Cast::toString($repository->get("{$prefix}.sort.name") ?? 'order'),
$manipulator::Placeholder,
);
}
@@ -319,19 +319,19 @@ static function (mixed $argument) use ($manipulator, $directive): bool {
},
);
- if ($argument && $arguments) {
+ if ($argument !== null && $arguments !== []) {
// todo(graphql/@stream): Move to AstManipulator + check definition.
$directiveNode = $manipulator->getDirective($argument, $directive);
- $directiveNode = $directiveNode
+ $directiveNode = $directiveNode !== null
? $manipulator->getDirectiveNode($directiveNode)
: null;
- if ($directiveNode) {
+ if ($directiveNode !== null) {
foreach ($arguments as $argName => $argValue) {
$argNode = $manipulator->getArgument($directiveNode, $argName);
$argValue = json_encode($argValue, JSON_THROW_ON_ERROR);
- if ($argNode) {
+ if ($argNode !== null) {
$argNode->value = Parser::valueLiteral($argValue);
} else {
$directiveNode->arguments[] = Parser::argument("{$argName}: {$argValue}");
@@ -340,7 +340,7 @@ static function (mixed $argument) use ($manipulator, $directive): bool {
}
}
- if ($argument && !$manipulator->isDeprecated($argument)) {
+ if ($argument !== null && !$manipulator->isDeprecated($argument)) {
return;
}
@@ -389,12 +389,12 @@ public function getBuilderInfo(TypeSource $source): ?BuilderInfo {
$type = $type instanceof ReflectionNamedType
? $type->getName()
: null;
- $type = $type && class_exists($type)
+ $type = $type !== null && class_exists($type)
? $type
: null;
// Scout?
- if ($type && !is_a($type, ScoutBuilder::class, true)) {
+ if ($type !== null && !is_a($type, ScoutBuilder::class, true)) {
$scout = $field->hasArgument(
static function (mixed $argument, AstManipulator $manipulator): bool {
return $manipulator->getDirective($argument, SearchDirective::class) !== null;
@@ -536,7 +536,7 @@ protected function getResolver(ObjectFieldSource|InterfaceFieldSource $source):
$resolver = null;
$builder = (array) $this->directiveArgValue(self::ArgBuilder);
- if ($builder) {
+ if ($builder !== []) {
if (count($builder) > 1) {
// empty
} elseif (isset($builder['builder'])) {
@@ -558,7 +558,7 @@ protected function getResolver(ObjectFieldSource|InterfaceFieldSource $source):
$parent = $source->getParent()->getTypeName();
$resolver = $this->getResolverQuery($parent, $source->getName());
- if (!$resolver) {
+ if ($resolver === null) {
$resolver = RootType::isRootType($parent)
? $this->getResolverModel(
$this->streamType->getOriginalTypeName($source->getTypeName()),
@@ -634,7 +634,7 @@ public function getResolverClass(ResolverProvider $provider, FieldValue $value,
}
};
$class = $helper->getResolverClass($this->provider, $value, $method);
- $resolver = $class ? [$class, $method] : null;
+ $resolver = $class !== null ? [$class, $method] : null;
return $resolver;
}
@@ -698,15 +698,13 @@ protected function getArgKey(
}
// Key
- if ($field) {
+ if ($field !== null) {
$rename = $manipulator->getDirective($field, RenameDirective::class);
- $key = $rename
- ? $rename->attributeArgValue()
- : $manipulator->getName($field);
+ $key = $rename?->attributeArgValue() ?? $manipulator->getName($field);
}
// Found?
- if (!$key) {
+ if ($key === null) {
throw new KeyUnknown($source);
}
diff --git a/packages/graphql/src/Stream/Directives/DirectiveTest.php b/packages/graphql/src/Stream/Directives/DirectiveTest.php
index 424d9871b..102e9038c 100644
--- a/packages/graphql/src/Stream/Directives/DirectiveTest.php
+++ b/packages/graphql/src/Stream/Directives/DirectiveTest.php
@@ -869,7 +869,7 @@ public function testGetResolverExplicit(array|null $expected, string $arguments)
$field,
);
- if ($expected) {
+ if ($expected !== null) {
$directive
->shouldReceive($expected['method'])
->withArgs($expected['args'])
diff --git a/packages/graphql/src/Testing/GraphQLAssertions.php b/packages/graphql/src/Testing/GraphQLAssertions.php
index 9929116b8..0debb7cbd 100644
--- a/packages/graphql/src/Testing/GraphQLAssertions.php
+++ b/packages/graphql/src/Testing/GraphQLAssertions.php
@@ -104,7 +104,7 @@ public function assertGraphQLSchemaEquals(
/**
* Validates current (application) schema.
*/
- public function assertGraphQLSchemaValid(string $message = ''): void {
+ public function assertGraphQLSchemaValid(?string $message = null): void {
// To perform validation, we should load all directives first. This is
// required because they can be defined inside the schema (and it is
// fine) or as a PHP class (in this case, the definition should be added
@@ -113,13 +113,14 @@ public function assertGraphQLSchemaValid(string $message = ''): void {
// Why do not use `lighthouse:validate-schema` command? Because it loads
// all existing directives (even not used) and thus extremely slow.
- $valid = true;
+ $valid = true;
+ $message ??= 'The schema is not valid.';
try {
BuildSchema::build($this->getGraphQLSchemaString())->assertValid();
} catch (Exception $exception) {
$valid = false;
- $message = ($message ?: 'The schema is not valid.')."\n\n".$exception->getMessage();
+ $message = "{$message}\n\n{$exception->getMessage()}";
}
self::assertTrue($valid, $message);
@@ -130,13 +131,13 @@ public function assertGraphQLSchemaValid(string $message = ''): void {
*/
public function assertGraphQLSchemaNoBreakingChanges(
SplFileInfo|string $expected,
- string $message = '',
+ ?string $message = null,
): void {
$oldSchema = BuildSchema::build(Args::content($expected));
$newSchema = BuildSchema::build($this->getGraphQLSchemaString());
$changes = BreakingChangesFinder::findBreakingChanges($oldSchema, $newSchema);
$changes = $this->getGraphQLChanges($changes);
- $message = ($message ?: 'The breaking changes found!')."\n\n{$changes}\n";
+ $message = ($message ?? 'The breaking changes found!')."\n\n{$changes}\n";
self::assertTrue($changes === '', $message);
}
@@ -146,13 +147,13 @@ public function assertGraphQLSchemaNoBreakingChanges(
*/
public function assertGraphQLSchemaNoDangerousChanges(
SplFileInfo|string $expected,
- string $message = '',
+ ?string $message = null,
): void {
$oldSchema = BuildSchema::build(Args::content($expected));
$newSchema = BuildSchema::build($this->getGraphQLSchemaString());
$changes = BreakingChangesFinder::findDangerousChanges($oldSchema, $newSchema);
$changes = $this->getGraphQLChanges($changes);
- $message = ($message ?: 'The dangerous changes found!')."\n\n{$changes}\n";
+ $message = ($message ?? 'The dangerous changes found!')."\n\n{$changes}\n";
self::assertTrue($changes === '', $message);
}
diff --git a/packages/graphql/src/Testing/Package/OperatorTests.php b/packages/graphql/src/Testing/Package/OperatorTests.php
index 8042a9a28..40144d5db 100644
--- a/packages/graphql/src/Testing/Package/OperatorTests.php
+++ b/packages/graphql/src/Testing/Package/OperatorTests.php
@@ -58,7 +58,7 @@ private function testOperator(
self::expectExceptionObject($expected);
}
- if ($resolver) {
+ if ($resolver !== null) {
$this->override(
BuilderFieldResolver::class,
static function (MockInterface $mock) use ($resolver): void {
@@ -73,7 +73,7 @@ static function (MockInterface $mock) use ($resolver): void {
$operator = $this->app()->make($this->getOperator());
$argument = $argumentFactory($this);
- $context = $contextFactory ? $contextFactory($this) : new Context();
+ $context = $contextFactory !== null ? $contextFactory($this) : new Context();
$handler = $this->app()->make($directive);
$builder = $builderFactory($this);
$actual = $operator->call($handler, $builder, $field, $argument, $context);
@@ -112,9 +112,9 @@ private function getOperator(): string {
$class = new ReflectionClass($this);
$attrs = $class->getAttributes(CoversClass::class, ReflectionAttribute::IS_INSTANCEOF);
$attr = reset($attrs);
- $class = $attr ? $attr->newInstance()->className() : null;
+ $class = $attr !== false ? $attr->newInstance()->className() : null;
- if (!$class || !is_a($class, Operator::class, true)) {
+ if ($class === null || !is_a($class, Operator::class, true)) {
throw new LogicException(
sprintf(
'The `%s` attribute is missed or is not an `%s` instance.',
diff --git a/packages/graphql/src/Testing/Package/TestCase.php b/packages/graphql/src/Testing/Package/TestCase.php
index 823b0b6d8..3029e464d 100644
--- a/packages/graphql/src/Testing/Package/TestCase.php
+++ b/packages/graphql/src/Testing/Package/TestCase.php
@@ -69,7 +69,7 @@ protected function getGraphQLArgument(
Schema|SplFileInfo|string|null $schema = null,
): Argument {
try {
- if ($schema) {
+ if ($schema !== null) {
$this->useGraphQLSchema($schema);
}
diff --git a/packages/graphql/src/Testing/SchemaBuilderWrapper.php b/packages/graphql/src/Testing/SchemaBuilderWrapper.php
index d99e340f7..eba130608 100644
--- a/packages/graphql/src/Testing/SchemaBuilderWrapper.php
+++ b/packages/graphql/src/Testing/SchemaBuilderWrapper.php
@@ -55,7 +55,7 @@ public function schemaHash(): string {
public function setSchema(Container $container, ?SchemaSourceProvider $provider): void {
// Origins
- if (!$this->singletons) {
+ if ($this->singletons === []) {
$this->singletons = [
ASTCache::class => $container->make(ASTCache::class),
ASTBuilder::class => $container->make(ASTBuilder::class),
@@ -65,7 +65,7 @@ public function setSchema(Container $container, ?SchemaSourceProvider $provider)
// Build
$builder = null;
- if ($provider) {
+ if ($provider !== null) {
$types = $container->make(TypeRegistry::class);
$dispatcher = $container->make(Dispatcher::class);
$directives = $container->make(DirectiveLocator::class);
diff --git a/packages/graphql/src/Utils/AstManipulator.php b/packages/graphql/src/Utils/AstManipulator.php
index c86b2807a..4239b87e0 100644
--- a/packages/graphql/src/Utils/AstManipulator.php
+++ b/packages/graphql/src/Utils/AstManipulator.php
@@ -316,7 +316,7 @@ public function getOriginType(
? PaginateDirectiveHelper::getPaginationType($directive)
: RelationDirectiveHelper::getPaginationType($directive);
- if ($pagination) {
+ if ($pagination !== null) {
if ($pagination->isPaginator()) {
$type = mb_substr($name, 0, -mb_strlen('Paginator'));
} elseif ($pagination->isSimple()) {
@@ -331,7 +331,7 @@ public function getOriginType(
// empty
}
- if ($type) {
+ if ($type !== null) {
$origin = Parser::typeReference("[{$type}!]!");
}
@@ -363,7 +363,7 @@ public function getDirective(
}
// Callback?
- if ($callback && !$callback($directive)) {
+ if ($callback !== null && !$callback($directive)) {
continue;
}
@@ -391,8 +391,10 @@ public function getDirectives(
$directives = [];
if ($node instanceof NamedType) {
- if ($node->astNode()) {
- $directives = $this->getDirectives($node->astNode(), $class, $callback);
+ $astNode = $node->astNode();
+
+ if ($astNode !== null) {
+ $directives = $this->getDirectives($astNode, $class, $callback);
}
} elseif ($node instanceof Node) {
$associated = $this->getDirectiveLocator()->associated($node);
@@ -400,12 +402,12 @@ public function getDirectives(
if ($class !== null || $callback !== null) {
foreach ($associated as $directive) {
// Class?
- if ($class && !($directive instanceof $class)) {
+ if ($class !== null && !($directive instanceof $class)) {
continue;
}
// Callback?
- if ($callback && !$callback($directive)) {
+ if ($callback !== null && !$callback($directive)) {
continue;
}
@@ -416,7 +418,7 @@ public function getDirectives(
$directives = $associated->all();
}
} elseif ($node instanceof InputObjectField || $node instanceof FieldDefinition || $node instanceof Argument) {
- if ($node->astNode) {
+ if ($node->astNode !== null) {
$directives = $this->getDirectives($node->astNode, $class, $callback);
}
} else {
@@ -680,7 +682,7 @@ public function addArgument(
?string $description = null,
): InputValueDefinitionNode|Argument {
// Added?
- if ($this->getArgument($field, $name)) {
+ if ($this->getArgument($field, $name) !== null) {
throw new ArgumentAlreadyDefined(
sprintf(
'%s { %s(%s) }',
@@ -694,7 +696,7 @@ public function addArgument(
// Add
if ($field instanceof FieldDefinitionNode) {
$argument = ''
- .($description ? BlockString::print($description) : '')
+ .($description !== null && $description !== '' ? BlockString::print($description) : '')
."{$name}: {$type}"
.($default !== null ? ' = '.json_encode($default, JSON_THROW_ON_ERROR) : '');
$argument = Parser::inputValueDefinition($argument);
@@ -720,7 +722,7 @@ public function addArgument(
// Field?
$interfaceField = $this->getField($interface, $fieldName);
- if (!$interfaceField) {
+ if ($interfaceField === null) {
continue;
}
@@ -752,7 +754,7 @@ public function addDirective(
if ($node instanceof Argument) {
// Unfortunately directives exists only in AST :(
// https://github.com/webonyx/graphql-php/issues/588
- if ($node->astNode) {
+ if ($node->astNode !== null) {
return $this->addDirective($node->astNode, $directive, $arguments);
} else {
throw new NotImplemented($node::class);
@@ -794,7 +796,7 @@ public function setFieldType(
// Field?
$interfaceField = $this->getField($interface, $fieldName);
- if (!$interfaceField) {
+ if ($interfaceField === null) {
continue;
}
@@ -831,7 +833,7 @@ public function setArgumentType(
// Field?
$interfaceField = $this->getField($interface, $fieldName);
- if (!$interfaceField) {
+ if ($interfaceField === null) {
continue;
}
diff --git a/packages/graphql/src/Utils/AstManipulatorTest.php b/packages/graphql/src/Utils/AstManipulatorTest.php
index 3ff9dc481..7f15442fe 100644
--- a/packages/graphql/src/Utils/AstManipulatorTest.php
+++ b/packages/graphql/src/Utils/AstManipulatorTest.php
@@ -277,7 +277,7 @@ public function testGetDirectives(): void {
// Field
$schema = $this->app()->make(SchemaBuilder::class)->schema();
$query = $schema->getQueryType();
- $field = $query ? $manipulator->getField($query, 'test') : null;
+ $field = $query !== null ? $manipulator->getField($query, 'test') : null;
$expected = [
AllDirective::class,
AstManipulatorTest_BDirective::class,
@@ -600,7 +600,7 @@ public function testGetOriginType(string $expected, string $graphql): void {
//
// =========================================================================
protected function getManipulator(?string $schema = null): AstManipulator {
- $document = $schema
+ $document = $schema !== null
? DocumentAST::fromSource($schema)
: $this->app()->make(ASTBuilder::class)->documentAST();
$manipulator = $this->app()->make(AstManipulator::class, [
diff --git a/packages/migrator/src/Concerns/RawSqlHelper.php b/packages/migrator/src/Concerns/RawSqlHelper.php
index 45be88564..7c375184f 100644
--- a/packages/migrator/src/Concerns/RawSqlHelper.php
+++ b/packages/migrator/src/Concerns/RawSqlHelper.php
@@ -39,7 +39,7 @@ protected function getRawPath(?string $type = null): string {
$file = basename($path, '.php');
$dir = dirname($path);
- return $type
+ return $type !== null && $type !== ''
? "{$dir}/{$file}~{$type}.sql"
: "{$dir}/{$file}.sql";
}
diff --git a/packages/migrator/src/Migrations/SqlMigration.php b/packages/migrator/src/Migrations/SqlMigration.php
index a4eaf8af2..2353d23c4 100644
--- a/packages/migrator/src/Migrations/SqlMigration.php
+++ b/packages/migrator/src/Migrations/SqlMigration.php
@@ -96,7 +96,7 @@ public function __invoke(Migrator $migrator): static {
// Defaults
$file = (new ReflectionClass($this))->getFileName();
- if ($file) {
+ if ($file !== false) {
$this->upFrom($file);
$this->downFrom($file);
}
diff --git a/packages/migrator/src/Seeders/SeederService.php b/packages/migrator/src/Seeders/SeederService.php
index 995212fe5..a32f3d19f 100644
--- a/packages/migrator/src/Seeders/SeederService.php
+++ b/packages/migrator/src/Seeders/SeederService.php
@@ -72,7 +72,7 @@ protected function getMigrationsTable(): string {
// https://github.com/LastDragon-ru/lara-asp/issues/143
$default = 'migrations';
$table = $this->config->getInstance()->get('database.migrations', $default);
- $table = is_array($table) ? ($table['table'] ?: $default) : $table;
+ $table = is_array($table) ? ($table['table'] ?? $default) : $table;
$table = mb_strtolower(Cast::toString($table));
return $table;
diff --git a/packages/migrator/src/Seeders/SmartSeeder.php b/packages/migrator/src/Seeders/SmartSeeder.php
index ea688df0f..cf4b62f3e 100644
--- a/packages/migrator/src/Seeders/SmartSeeder.php
+++ b/packages/migrator/src/Seeders/SmartSeeder.php
@@ -43,7 +43,7 @@ protected function isSeeded(): bool {
if (is_string($target) && is_subclass_of($target, Model::class, true)) {
$seeded = $target::query()->count() > 0;
- } elseif ($target) {
+ } elseif ($target !== null && $target !== '') {
$seeded = $this->getConnectionInstance()->table($target)->count() > 0;
} else {
$seeded = $this->service->isSeeded();
@@ -58,7 +58,7 @@ protected function isSeeded(): bool {
public function run(): void {
$reason = $this->isSkipped();
- if ($reason) {
+ if ($reason !== false) {
if (is_string($reason)) {
$this->skipped($reason);
} else {
@@ -82,7 +82,9 @@ abstract public function seed(): void;
protected function skipped(?string $reason = null): void {
if ($this->command !== null) {
$this->command->getOutput()
- ->writeln(' skipped'.($reason ? " ({$reason})" : ''));
+ ->writeln(
+ ' skipped'.($reason !== null && $reason !== '' ? " ({$reason})" : ''),
+ );
}
}
diff --git a/packages/migrator/src/Traits/SqlHelper.php b/packages/migrator/src/Traits/SqlHelper.php
index 67e91ce02..ee803f13f 100644
--- a/packages/migrator/src/Traits/SqlHelper.php
+++ b/packages/migrator/src/Traits/SqlHelper.php
@@ -42,9 +42,9 @@ protected function getSqlPath(string $path, ?string ...$type): string {
if ($extension !== $sql) {
$directory = dirname($path);
- $type = implode('.', array_filter($type));
+ $type = implode('.', array_filter($type, static fn ($type) => $type !== null && $type !== ''));
$name = pathinfo($path, PATHINFO_FILENAME);
- $path = $type
+ $path = $type !== ''
? "{$directory}/{$name}~{$type}.{$sql}"
: "{$directory}/{$name}.{$sql}";
}
diff --git a/packages/serializer/src/Casts/AsSerializable.php b/packages/serializer/src/Casts/AsSerializable.php
index 553f8960c..f883fe8e5 100644
--- a/packages/serializer/src/Casts/AsSerializable.php
+++ b/packages/serializer/src/Casts/AsSerializable.php
@@ -44,7 +44,7 @@ public function __construct(
* @param class-string $class
*/
public static function using(string $class, ?string $format = null): string {
- return static::class.':'.$class.($format ? ",{$format}" : '');
+ return static::class.':'.$class.($format !== null && $format !== '' ? ",{$format}" : '');
}
/**
diff --git a/packages/serializer/src/Factory.php b/packages/serializer/src/Factory.php
index f05ed778d..21f4ccf68 100644
--- a/packages/serializer/src/Factory.php
+++ b/packages/serializer/src/Factory.php
@@ -99,7 +99,7 @@ protected function make(
protected function getConfigFormat(?string $config): ?string {
/** @var ?string $format */
- $format = $config
+ $format = $config !== null && $config !== ''
? $this->config->getInstance()->get("{$config}.default")
: null;
@@ -111,7 +111,7 @@ protected function getConfigFormat(?string $config): ?string {
*/
protected function getConfigContext(?string $config): array {
/** @var array $context */
- $context = $config
+ $context = $config !== null && $config !== ''
? (array) $this->config->getInstance()->get("{$config}.context")
: [];
@@ -146,7 +146,7 @@ protected function getEncoders(array $encoders, array &$context, ?string $config
*/
protected function getConfigEncoders(?string $config): array {
/** @var array, array> $encoders */
- $encoders = $config
+ $encoders = $config !== null && $config !== ''
? (array) $this->config->getInstance()->get("{$config}.encoders")
: [];
@@ -208,7 +208,7 @@ protected function getNormalizers(array $normalizers, array &$context, ?string $
*/
protected function getConfigNormalizers(?string $config): array {
/** @var array, array|null> $normalizers */
- $normalizers = $config
+ $normalizers = $config !== null && $config !== ''
? (array) $this->config->getInstance()->get("{$config}.normalizers")
: $config;
diff --git a/packages/serializer/src/Metadata/MetadataFactory.php b/packages/serializer/src/Metadata/MetadataFactory.php
index 657ebcefd..474bbc2e3 100644
--- a/packages/serializer/src/Metadata/MetadataFactory.php
+++ b/packages/serializer/src/Metadata/MetadataFactory.php
@@ -26,7 +26,6 @@
use function get_debug_type;
use function is_object;
use function is_string;
-use function reset;
use function sprintf;
class MetadataFactory implements ClassMetadataFactoryInterface, PropertyTypeExtractorInterface {
@@ -103,7 +102,7 @@ public function getTypes(string $class, string $property, array $context = []):
}
protected function getTypeExtractor(): PropertyTypeExtractorInterface {
- if (!$this->extractor) {
+ if ($this->extractor === null) {
if (!class_exists(ContextFactory::class) || !class_exists(PhpDocParser::class)) {
/**
* These classes are required for {@see PhpStanExtractor}. We
@@ -167,7 +166,7 @@ protected function getDiscriminatorMapping(ReflectionClass $class): ?ClassDiscri
*/
private function getAttribute(ReflectionProperty $object, string $attribute): ?object {
$attributes = $object->getAttributes($attribute, ReflectionAttribute::IS_INSTANCEOF);
- $instance = (reset($attributes) ?: null)?->newInstance();
+ $instance = ($attributes[0] ?? null)?->newInstance();
return $instance;
}
diff --git a/packages/serializer/src/Normalizers/SerializableNormalizer.php b/packages/serializer/src/Normalizers/SerializableNormalizer.php
index 625986740..7b0a26be9 100644
--- a/packages/serializer/src/Normalizers/SerializableNormalizer.php
+++ b/packages/serializer/src/Normalizers/SerializableNormalizer.php
@@ -134,7 +134,7 @@ static function (mixed $attribute): string {
);
$this->attributes[$class] = array_fill_keys($properties, true);
- if ($mapping) {
+ if ($mapping !== null) {
$property = $mapping->getTypeProperty();
$this->discriminators[$class] = $property;
@@ -221,8 +221,8 @@ private function isAttribute(string $class, string $attribute): bool {
private function getTypeClass(string $type, mixed $data): string {
$mapping = $this->classDiscriminatorResolver?->getMappingForClass($type);
$property = $mapping?->getTypeProperty();
- $class = $property && is_array($data) && isset($data[$property]) && is_string($data[$property])
- ? $mapping->getClassForType($data[$property])
+ $class = $property !== null && is_array($data) && isset($data[$property]) && is_string($data[$property])
+ ? $mapping?->getClassForType($data[$property])
: null;
return $class ?? $type;
diff --git a/packages/spa/src/Angular/Url.php b/packages/spa/src/Angular/Url.php
index 897afca2b..acdb0cfa1 100644
--- a/packages/spa/src/Angular/Url.php
+++ b/packages/spa/src/Angular/Url.php
@@ -58,7 +58,7 @@ public function build(array $parameters = []): string {
$params = $this->getParameters();
$missed = array_diff_key(array_fill_keys($params, null), $parameters);
- if ($missed) {
+ if ($missed !== []) {
throw new InvalidArgumentException(
sprintf('Url requires the following parameters: %s.', implode(', ', array_keys($missed))),
);
@@ -77,11 +77,11 @@ public function build(array $parameters = []): string {
}
// Add query params
- if ($parameters) {
+ if ($parameters !== []) {
$query = http_build_query($parameters, '', '&', PHP_QUERY_RFC3986);
$query = (string) preg_replace('/%5B\d+%5D/ui', '', $query);
- if ($url->getQuery()) {
+ if ($url->getQuery() !== '') {
$url = $url->withQuery("{$url->getQuery()}&{$query}");
} else {
$url = $url->withQuery($query);
diff --git a/packages/spa/src/Http/WithValueProvider.php b/packages/spa/src/Http/WithValueProvider.php
index 4085da24d..1d622783f 100644
--- a/packages/spa/src/Http/WithValueProvider.php
+++ b/packages/spa/src/Http/WithValueProvider.php
@@ -39,7 +39,7 @@ public function validated(mixed $key = null, mixed $default = null): mixed {
}
}
- if ($provider && Arr::has($validated, $attribute)) {
+ if ($provider !== null && Arr::has($validated, $attribute)) {
$value = Arr::get($validated, $attribute);
if (!is_null($value)) {
diff --git a/packages/spa/src/Http/WithValueProviderTest.php b/packages/spa/src/Http/WithValueProviderTest.php
index ae6255719..d0cd1a87c 100644
--- a/packages/spa/src/Http/WithValueProviderTest.php
+++ b/packages/spa/src/Http/WithValueProviderTest.php
@@ -49,7 +49,7 @@ protected function resolve(mixed $value, array $parameters): mixed {
$rule = new class() implements ValidationRule {
#[Override]
public function validate(string $attribute, mixed $value, Closure $fail): void {
- if (!$value) {
+ if (! ((bool) $value)) {
$fail(static::class);
}
}
diff --git a/packages/spa/src/Routing/Resolver.php b/packages/spa/src/Routing/Resolver.php
index a0a03afa7..9b7f52bda 100644
--- a/packages/spa/src/Routing/Resolver.php
+++ b/packages/spa/src/Routing/Resolver.php
@@ -55,8 +55,8 @@ protected function resolveParameters(?Request $request = null, ?Route $route = n
* @throws UnresolvedValueException
*/
public function get(mixed $value, ?Request $request = null, ?Route $route = null): mixed {
- $route = $route ?: $this->router->getCurrentRoute();
- $request = $request ?: $this->router->getCurrentRequest();
+ $route ??= $this->router->getCurrentRoute();
+ $request ??= $this->router->getCurrentRequest();
$parameters = $this->resolveParameters($request, $route);
$key = $this->key(array_merge([$value], $parameters));
diff --git a/packages/spa/src/Routing/UnresolvedValueException.php b/packages/spa/src/Routing/UnresolvedValueException.php
index 786d58370..e9d9ecd27 100644
--- a/packages/spa/src/Routing/UnresolvedValueException.php
+++ b/packages/spa/src/Routing/UnresolvedValueException.php
@@ -21,6 +21,6 @@ public function getValue(): mixed {
}
public function getInnerException(): Exception {
- return new NotFoundHttpException($this->getMessage() ?: 'Not found.', $this);
+ return new NotFoundHttpException($this->getMessage() !== '' ? $this->getMessage() : 'Not found.', $this);
}
}
diff --git a/packages/spa/src/Validation/Rules/DateRule.php b/packages/spa/src/Validation/Rules/DateRule.php
index 1837afc91..dc73229a9 100644
--- a/packages/spa/src/Validation/Rules/DateRule.php
+++ b/packages/spa/src/Validation/Rules/DateRule.php
@@ -19,7 +19,7 @@ public function isValid(string $attribute, mixed $value): bool {
try {
$date = $this->getValue($value);
- $valid = $date && $date->format($this->getFormat()) === $value;
+ $valid = $date !== null && $date->format($this->getFormat()) === $value;
} catch (InvalidArgumentException $exception) {
// ignored
}
@@ -29,7 +29,10 @@ public function isValid(string $attribute, mixed $value): bool {
#[Override]
public function getValue(mixed $value): DateTimeInterface|null {
- return Date::createFromFormat("{$this->getFormat()}|", $value) ?: null;
+ $value = Date::createFromFormat("{$this->getFormat()}|", $value);
+ $value = $value instanceof DateTimeInterface ? $value : null;
+
+ return $value;
}
protected function getFormat(): string {
diff --git a/packages/spa/src/Validation/Rules/DateRuleTest.php b/packages/spa/src/Validation/Rules/DateRuleTest.php
index a116333d9..5e795a299 100644
--- a/packages/spa/src/Validation/Rules/DateRuleTest.php
+++ b/packages/spa/src/Validation/Rules/DateRuleTest.php
@@ -55,7 +55,7 @@ public function testGetValue(Exception|string|null $expected, string $value): vo
$rule = new DateRule($translator);
$date = $rule->getValue($value);
- self::assertEquals($expected, $date ? $date->format('Y-m-d\TH:i:s.uP') : null);
+ self::assertEquals($expected, $date?->format('Y-m-d\TH:i:s.uP'));
}
//
diff --git a/packages/spa/src/Validation/Rules/DateTimeRule.php b/packages/spa/src/Validation/Rules/DateTimeRule.php
index 18231e842..17bdead45 100644
--- a/packages/spa/src/Validation/Rules/DateTimeRule.php
+++ b/packages/spa/src/Validation/Rules/DateTimeRule.php
@@ -24,7 +24,7 @@ public function __construct(
#[Override]
public function getValue(mixed $value): DateTimeInterface|null {
$value = parent::getValue($value);
- $tz = $this->config->getInstance()->get('app.timezone') ?: 'UTC';
+ $tz = $this->config->getInstance()->get('app.timezone') ?? 'UTC';
if ($value instanceof DateTime || $value instanceof DateTimeImmutable) {
$value = $value->setTimezone($tz);
diff --git a/packages/spa/src/Validation/Rules/DateTimeRuleTest.php b/packages/spa/src/Validation/Rules/DateTimeRuleTest.php
index a80a80e65..253b10469 100644
--- a/packages/spa/src/Validation/Rules/DateTimeRuleTest.php
+++ b/packages/spa/src/Validation/Rules/DateTimeRuleTest.php
@@ -68,7 +68,7 @@ public function testGetValue(string|array $expected, ?string $tz, string $value)
$date = $rule->getValue($value);
- self::assertEquals($expected, $date ? $date->format('Y-m-d\TH:i:s.uP') : null);
+ self::assertEquals($expected, $date?->format('Y-m-d\TH:i:s.uP'));
}
//
diff --git a/packages/spa/src/Validation/Rules/ResolverRuleTest.php b/packages/spa/src/Validation/Rules/ResolverRuleTest.php
index d0980df18..333eeb53c 100644
--- a/packages/spa/src/Validation/Rules/ResolverRuleTest.php
+++ b/packages/spa/src/Validation/Rules/ResolverRuleTest.php
@@ -27,7 +27,7 @@ public function testRule(): void {
*/
#[Override]
protected function resolve(mixed $value, array $parameters): mixed {
- return $value ? new stdClass() : null;
+ return $value !== false ? new stdClass() : null;
}
};
$rule = new ResolverRule($translator, $resolver);
diff --git a/packages/spa/src/Validation/Rules/Rule.php b/packages/spa/src/Validation/Rules/Rule.php
index b62e8dd8d..97e084fdc 100644
--- a/packages/spa/src/Validation/Rules/Rule.php
+++ b/packages/spa/src/Validation/Rules/Rule.php
@@ -93,9 +93,9 @@ protected function getMessage(): string {
return [$variant => $this->translate($variant, $replace)];
})
->first(static function (string $value, string $key): bool {
- return $key !== $value;
+ return $key !== $value && $value !== '';
})
- ?: $this->getMessageDefault();
+ ?? $this->getMessageDefault();
return $translation;
}
diff --git a/packages/testing/UPGRADE.md b/packages/testing/UPGRADE.md
index 0086a0336..0b5344d2d 100644
--- a/packages/testing/UPGRADE.md
+++ b/packages/testing/UPGRADE.md
@@ -52,7 +52,7 @@ Please also see [changelog](https://github.com/LastDragon-ru/lara-asp/releases)
}
```
-* [ ] [`ScheduleAssertions`][code-links/5bf3a6e818e8ec48] methods became non-static (#151).
+* [ ] [`ScheduleAssertions`][code-links/5bf3a6e818e8ec48] methods became non-static and signature changes (#151).
# Upgrade from v5
diff --git a/packages/testing/src/Assertions/Application/ScheduleAssertions.php b/packages/testing/src/Assertions/Application/ScheduleAssertions.php
index af4bdf4da..4c3ca65e8 100644
--- a/packages/testing/src/Assertions/Application/ScheduleAssertions.php
+++ b/packages/testing/src/Assertions/Application/ScheduleAssertions.php
@@ -25,8 +25,8 @@ abstract protected function app(): Application;
/**
* Asserts that Schedule contains task.
*/
- public function assertScheduled(string $expected, string $message = ''): void {
- $message = $message ?: sprintf('The `%s` is not scheduled.', $expected);
+ public function assertScheduled(string $expected, ?string $message = null): void {
+ $message ??= sprintf('The `%s` is not scheduled.', $expected);
$scheduled = $this->isScheduledEvent($expected);
Assert::assertTrue($scheduled, $message);
diff --git a/packages/testing/src/Assertions/Application/ScheduleMatchers/CommandMatcher.php b/packages/testing/src/Assertions/Application/ScheduleMatchers/CommandMatcher.php
index 6538ffb3c..c7495dd45 100644
--- a/packages/testing/src/Assertions/Application/ScheduleMatchers/CommandMatcher.php
+++ b/packages/testing/src/Assertions/Application/ScheduleMatchers/CommandMatcher.php
@@ -34,10 +34,17 @@ public function isMatch(Event $event, mixed $task): bool {
// Check
$variants = match (true) {
- is_string($task) && is_a($task, Command::class, true) => array_unique(array_filter([
- Application::formatCommandString($this->container->make($task)->getName() ?? ''),
- Application::formatCommandString($task::getDefaultName() ?? ''),
- ])),
+ is_string($task) && is_a($task, Command::class, true) => array_unique(
+ array_filter(
+ [
+ Application::formatCommandString($this->container->make($task)->getName() ?? ''),
+ Application::formatCommandString($task::getDefaultName() ?? ''),
+ ],
+ static function (string $command): bool {
+ return $command !== '';
+ },
+ ),
+ ),
is_string($task) => [
Application::formatCommandString($task),
$task,
diff --git a/packages/testing/src/Comparators/DatabaseQueryComparator.php b/packages/testing/src/Comparators/DatabaseQueryComparator.php
index 265ce17bb..15da23462 100644
--- a/packages/testing/src/Comparators/DatabaseQueryComparator.php
+++ b/packages/testing/src/Comparators/DatabaseQueryComparator.php
@@ -85,7 +85,7 @@ protected function normalize(Query $query): Query {
// Laravel's aliases have a global counter and are dependent on tests
// execution order -> we need to normalize them before comparison.
- if (preg_match_all('/(?laravel_reserved_[\d]+)/', $sql, $matches, PREG_SET_ORDER)) {
+ if (preg_match_all('/(?laravel_reserved_[\d]+)/', $sql, $matches, PREG_SET_ORDER) > 0) {
$matches = array_unique(array_column($matches, 'group'));
natsort($matches);
diff --git a/packages/testing/src/Comparators/DatabaseQueryComparatorTest.php b/packages/testing/src/Comparators/DatabaseQueryComparatorTest.php
index 174b30f24..04199ab2c 100644
--- a/packages/testing/src/Comparators/DatabaseQueryComparatorTest.php
+++ b/packages/testing/src/Comparators/DatabaseQueryComparatorTest.php
@@ -27,7 +27,9 @@ public function testAccepts(bool $equals, mixed $expected, mixed $actual): void
public function testAssertEquals(bool|string $equals, mixed $expected, mixed $actual): void {
if ($equals !== true) {
self::expectException(ComparisonFailure::class);
- self::expectExceptionMessageMatches($equals ?: '/Failed asserting that two database queries are equal/i');
+ self::expectExceptionMessageMatches(
+ $equals !== false ? $equals : '/Failed asserting that two database queries are equal/i',
+ );
}
$comparator = new DatabaseQueryComparator();
diff --git a/packages/testing/src/Comparators/EloquentModelComparatorTest.php b/packages/testing/src/Comparators/EloquentModelComparatorTest.php
index b8affc053..2c9d01c79 100644
--- a/packages/testing/src/Comparators/EloquentModelComparatorTest.php
+++ b/packages/testing/src/Comparators/EloquentModelComparatorTest.php
@@ -26,7 +26,9 @@ public function testAccepts(bool $equals, mixed $expected, mixed $actual): void
public function testAssertEquals(bool|string $equals, mixed $expected, mixed $actual): void {
if ($equals !== true) {
self::expectException(ComparisonFailure::class);
- self::expectExceptionMessageMatches($equals ?: '/Failed asserting that two models are equal/i');
+ self::expectExceptionMessageMatches(
+ $equals !== false ? $equals : '/Failed asserting that two models are equal/i',
+ );
}
$comparator = new EloquentModelComparator();
diff --git a/packages/testing/src/Concerns/Override.php b/packages/testing/src/Concerns/Override.php
index 03a858b72..3ed2b8001 100644
--- a/packages/testing/src/Concerns/Override.php
+++ b/packages/testing/src/Concerns/Override.php
@@ -89,7 +89,7 @@ protected function override(string $class, mixed $factory = null): mixed {
: $factory;
if (is_callable($factory)) {
- $mock = $factory($mock, $this) ?: $mock;
+ $mock = $factory($mock, $this) ?? $mock;
} elseif (is_string($factory)) {
$mock = $this->app()->make($factory);
} else {
diff --git a/packages/testing/src/Constraints/Json/JsonMatchesSchema.php b/packages/testing/src/Constraints/Json/JsonMatchesSchema.php
index 18d566f1f..26a570707 100644
--- a/packages/testing/src/Constraints/Json/JsonMatchesSchema.php
+++ b/packages/testing/src/Constraints/Json/JsonMatchesSchema.php
@@ -59,10 +59,10 @@ protected function failureDescription(mixed $other): string {
protected function additionalFailureDescription(mixed $other): string {
$description = parent::additionalFailureDescription($other);
- if ($this->result) {
+ if ($this->result !== null) {
$error = $this->result->error();
- if ($error) {
+ if ($error !== null) {
$formatted = (new ErrorFormatter())->format($error);
$padding = ' ';
$description .= PHP_EOL.$padding.'Errors: ';
diff --git a/packages/testing/src/Constraints/Json/Protocol.php b/packages/testing/src/Constraints/Json/Protocol.php
index e246d0d53..f7c46bfb3 100644
--- a/packages/testing/src/Constraints/Json/Protocol.php
+++ b/packages/testing/src/Constraints/Json/Protocol.php
@@ -70,7 +70,7 @@ public function __invoke(Uri $uri): ?string {
if ($uri->host() === self::HostWindows) {
// For Windows it can be `/C:/path`, so we need to remove the slash
- if (preg_match('/^\/[a-z]\:/i', $path)) {
+ if (preg_match('/^\/[a-z]\:/i', $path) > 0) {
$path = ltrim($path, '/');
}
}
diff --git a/packages/testing/src/Constraints/Json/Template.php b/packages/testing/src/Constraints/Json/Template.php
index e9a378f6d..72ad8820d 100644
--- a/packages/testing/src/Constraints/Json/Template.php
+++ b/packages/testing/src/Constraints/Json/Template.php
@@ -27,7 +27,7 @@ public function build(array $parameters): string {
$result = $this->content;
$matches = [];
- if (preg_match_all('/\$\{(?[^}]+)\}/u', $result, $matches, PREG_SET_ORDER)) {
+ if (preg_match_all('/\$\{(?[^}]+)\}/u', $result, $matches, PREG_SET_ORDER) > 0) {
$variables = array_unique(array_column($matches, 'var'));
foreach ($variables as $name) {
diff --git a/packages/testing/src/Constraints/Response/Factory.php b/packages/testing/src/Constraints/Response/Factory.php
index 7066adb6b..1d9774cf1 100644
--- a/packages/testing/src/Constraints/Response/Factory.php
+++ b/packages/testing/src/Constraints/Response/Factory.php
@@ -14,14 +14,17 @@
class Factory {
/**
- * @var WeakMap
+ * @var WeakMap|Response,ResponseInterface>
*/
protected static WeakMap $cache;
+ /**
+ * @param TestResponse<*>|Response $response
+ */
public static function make(TestResponse|Response $response): ResponseInterface {
$psrResponse = static::getCache()[$response] ?? null;
- if (!$psrResponse) {
+ if ($psrResponse === null) {
if ($response instanceof TestResponse) {
$psrResponse = static::create($response->baseResponse);
} else {
@@ -35,7 +38,7 @@ public static function make(TestResponse|Response $response): ResponseInterface
}
/**
- * @return WeakMap
+ * @return WeakMap|Response,ResponseInterface>
*/
protected static function getCache(): WeakMap {
if (!isset(static::$cache)) {
diff --git a/packages/testing/src/Constraints/Response/Header.php b/packages/testing/src/Constraints/Response/Header.php
index 47f927978..45f4ff103 100644
--- a/packages/testing/src/Constraints/Response/Header.php
+++ b/packages/testing/src/Constraints/Response/Header.php
@@ -34,7 +34,7 @@ protected function matches(mixed $other): bool {
#[Override]
public function toString(): string {
return "has {$this->getName()} header".(
- $this->getConstraints() ? ' that '.parent::toString() : ''
+ $this->getConstraints() !== [] ? ' that '.parent::toString() : ''
);
}
diff --git a/packages/testing/src/Constraints/Response/Response.php b/packages/testing/src/Constraints/Response/Response.php
index 0b0b1eeb4..c3e3e09cb 100644
--- a/packages/testing/src/Constraints/Response/Response.php
+++ b/packages/testing/src/Constraints/Response/Response.php
@@ -99,7 +99,7 @@ protected function additionalFailureDescription(mixed $other, bool $root = true)
$description = [];
- if ($this->failed) {
+ if ($this->failed !== null) {
$description[] = $this->failed instanceof self
? $this->failed->additionalFailureDescription($other, false)
: $this->failed->additionalFailureDescription($other);
@@ -113,8 +113,8 @@ protected function additionalFailureDescription(mixed $other, bool $root = true)
return trim($text, PHP_EOL);
}, $description);
$description = array_unique($description);
- $description = array_filter($description);
- $description = $description
+ $description = array_filter($description, static fn ($line) => $line !== '');
+ $description = $description !== []
? PHP_EOL.implode(PHP_EOL.PHP_EOL, $description).PHP_EOL
: '';
diff --git a/packages/testing/src/Constraints/Xml/XmlMatchesSchema.php b/packages/testing/src/Constraints/Xml/XmlMatchesSchema.php
index 8a5fc4f23..ae6ea9516 100644
--- a/packages/testing/src/Constraints/Xml/XmlMatchesSchema.php
+++ b/packages/testing/src/Constraints/Xml/XmlMatchesSchema.php
@@ -71,7 +71,7 @@ protected function matches(mixed $other): bool {
libxml_clear_errors();
try {
- $matches = $constraint && $constraint->isMatchesSchema($this->schema, $other);
+ $matches = $constraint !== null && $constraint->isMatchesSchema($this->schema, $other);
} finally {
$this->errors = libxml_get_errors();
diff --git a/packages/testing/src/Database/RefreshDatabaseIfEmpty.php b/packages/testing/src/Database/RefreshDatabaseIfEmpty.php
index aa6694c40..082072f6a 100644
--- a/packages/testing/src/Database/RefreshDatabaseIfEmpty.php
+++ b/packages/testing/src/Database/RefreshDatabaseIfEmpty.php
@@ -36,7 +36,7 @@ protected function refreshTestDatabase(): void {
$connection = $this->app()->make(DatabaseManager::class)->connection();
$tables = $connection->getSchemaBuilder()->getTables();
- if ($tables) {
+ if ($tables !== []) {
RefreshDatabaseState::$migrated = true;
}
}
diff --git a/packages/testing/src/Mixins/Assert.php b/packages/testing/src/Mixins/Assert.php
index ce1bedc71..5b066583b 100644
--- a/packages/testing/src/Mixins/Assert.php
+++ b/packages/testing/src/Mixins/Assert.php
@@ -8,6 +8,7 @@
use LastDragon_ru\LaraASP\Testing\Constraints\Response\Factory;
use PHPUnit\Framework\Assert as PHPUnitAssert;
use PHPUnit\Framework\Constraint\Constraint;
+use Symfony\Component\HttpFoundation\Response;
/**
* @internal
@@ -18,6 +19,10 @@ class Assert extends PHPUnitAssert {
/**
* Asserts that TestResponse satisfies given constraint.
+ *
+ * @template T of Response
+ *
+ * @param TestResponse $response
*/
public static function assertThatResponse(
TestResponse $response,
diff --git a/packages/testing/src/Mixins/TestResponseMixin.php b/packages/testing/src/Mixins/TestResponseMixin.php
index 73c98d020..05a4e7f45 100644
--- a/packages/testing/src/Mixins/TestResponseMixin.php
+++ b/packages/testing/src/Mixins/TestResponseMixin.php
@@ -9,17 +9,18 @@
use LastDragon_ru\LaraASP\Testing\Constraints\Response\StatusCode;
use PHPUnit\Framework\Constraint\Constraint;
use SplFileInfo;
+use Symfony\Component\HttpFoundation\Response;
/**
* @internal
*/
class TestResponseMixin {
/**
- * @return Closure(Constraint, string): TestResponse
+ * @return Closure(Constraint, string): TestResponse
*/
public function assertThat(): Closure {
return function (Constraint $constraint, string $message = ''): TestResponse {
- /** @var TestResponse $this */
+ /** @var TestResponse $this */
Assert::assertThatResponse($this, $constraint, $message);
return $this;
@@ -27,11 +28,11 @@ public function assertThat(): Closure {
}
/**
- * @return Closure(JsonSchema, string): TestResponse
+ * @return Closure(JsonSchema, string): TestResponse
*/
public function assertJsonMatchesSchema(): Closure {
return function (JsonSchema $schema, string $message = ''): TestResponse {
- /** @var TestResponse $this */
+ /** @var TestResponse $this */
Assert::assertJsonMatchesSchema($schema, $this->json(), $message);
return $this;
@@ -39,11 +40,11 @@ public function assertJsonMatchesSchema(): Closure {
}
/**
- * @return Closure(string, string): TestResponse
+ * @return Closure(string, string): TestResponse
*/
public function assertContentType(): Closure {
return function (string $contentType, string $message = ''): TestResponse {
- /** @var TestResponse $this */
+ /** @var TestResponse $this */
Assert::assertThatResponse($this, new ContentType($contentType), $message);
return $this;
@@ -51,11 +52,11 @@ public function assertContentType(): Closure {
}
/**
- * @return Closure(int, string): TestResponse
+ * @return Closure(int, string): TestResponse
*/
public function assertStatusCode(): Closure {
return function (int $statusCode, string $message = ''): TestResponse {
- /** @var TestResponse $this */
+ /** @var TestResponse $this */
Assert::assertThatResponse($this, new StatusCode($statusCode), $message);
return $this;
@@ -63,11 +64,11 @@ public function assertStatusCode(): Closure {
}
/**
- * @return Closure(SplFileInfo, string): TestResponse
+ * @return Closure(SplFileInfo, string): TestResponse
*/
public function assertXmlMatchesSchema(): Closure {
return function (SplFileInfo $schema, string $message = ''): TestResponse {
- /** @var TestResponse $this */
+ /** @var TestResponse $this */
Assert::assertXmlMatchesSchema($schema, (string) $this->getContent(), $message);
return $this;
diff --git a/packages/testing/src/Mockery/MockProperties.php b/packages/testing/src/Mockery/MockProperties.php
index d7a7e1dc1..929405785 100644
--- a/packages/testing/src/Mockery/MockProperties.php
+++ b/packages/testing/src/Mockery/MockProperties.php
@@ -43,7 +43,7 @@ public function shouldUseProperty(string $name): MockedProperty {
$property = "{$this->mockery_getName()}::\${$name}";
$director = $this->mockery_getExpectationsFor($method);
- if ($director) {
+ if ($director !== null) {
throw new BadMethodCallException(
"The property `{$property}` already mocked.",
);
diff --git a/packages/testing/src/Providers/CompositeDataProvider.php b/packages/testing/src/Providers/CompositeDataProvider.php
index 9ccdcbbb6..44b9c771d 100644
--- a/packages/testing/src/Providers/CompositeDataProvider.php
+++ b/packages/testing/src/Providers/CompositeDataProvider.php
@@ -72,7 +72,7 @@ public function getData(bool $raw = false): array {
$cExpected = reset($cData);
$cParameters = array_slice($cData, 1);
- if ($this->isExpectedFinal($cExpected) || !$previous) {
+ if ($this->isExpectedFinal($cExpected) || $previous === []) {
$data[$cKey] = array_merge([$cExpected], $cParameters);
} else {
foreach ($previous as $pKey => $pData) {
diff --git a/packages/testing/src/Requirements/PhpUnit/Checker.php b/packages/testing/src/Requirements/PhpUnit/Checker.php
index a2cb26da7..2cfff9bae 100644
--- a/packages/testing/src/Requirements/PhpUnit/Checker.php
+++ b/packages/testing/src/Requirements/PhpUnit/Checker.php
@@ -36,7 +36,7 @@ public function __construct() {
public function isSatisfied(string $class, ?string $method = null, array &$failed = []): bool {
$failed = array_merge(
$this->getClassFailedRequirements($class),
- $method
+ $method !== null
? $this->getMethodFailedRequirements($class, $method)
: [],
);
@@ -77,7 +77,7 @@ protected function getFailedRequirements(ReflectionClass|ReflectionMethod $objec
$instance = $requirement->newInstance();
$reason = $instance->isSatisfied() ? false : (string) $instance;
- if ($reason) {
+ if ($reason !== false) {
$failed[] = $reason;
break;
}
diff --git a/packages/testing/src/Requirements/PhpUnit/Listener.php b/packages/testing/src/Requirements/PhpUnit/Listener.php
index c4d84358c..cf1a2d10b 100644
--- a/packages/testing/src/Requirements/PhpUnit/Listener.php
+++ b/packages/testing/src/Requirements/PhpUnit/Listener.php
@@ -27,7 +27,7 @@ public function notify(Event $event): void {
// Supported?
[$class, $method] = $this->getTarget($event);
- if (!$class) {
+ if ($class === null) {
return;
}
@@ -36,7 +36,7 @@ public function notify(Event $event): void {
$satisfied = $this->checker->isSatisfied($class, $method, $failed);
if (!$satisfied) {
- Assert::markTestSkipped(implode(PHP_EOL, $failed ?: ['Unknown requirement.']));
+ Assert::markTestSkipped(implode(PHP_EOL, $failed !== [] ? $failed : ['Unknown requirement.']));
}
}
diff --git a/packages/testing/src/Requirements/Requirements/RequiresComposerPackage.php b/packages/testing/src/Requirements/Requirements/RequiresComposerPackage.php
index 8be279b5e..d90df6907 100644
--- a/packages/testing/src/Requirements/Requirements/RequiresComposerPackage.php
+++ b/packages/testing/src/Requirements/Requirements/RequiresComposerPackage.php
@@ -16,6 +16,10 @@
*/
#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_METHOD)]
class RequiresComposerPackage implements Requirement {
+ /**
+ * @param non-empty-string $package
+ * @param non-empty-string|null $version
+ */
public function __construct(
protected readonly string $package,
protected readonly ?string $version = null,
@@ -25,7 +29,7 @@ public function __construct(
#[Override]
public function isSatisfied(): bool {
- return $this->version
+ return $this->version !== null
? InstalledVersions::satisfies(new VersionParser(), $this->package, $this->version)
: InstalledVersions::isInstalled($this->package);
}
@@ -34,7 +38,7 @@ public function isSatisfied(): bool {
public function __toString(): string {
return sprintf(
'The package `%s` is not installed.',
- $this->package.($this->version ? ":{$this->version}" : ''),
+ $this->package.($this->version !== null ? ":{$this->version}" : ''),
);
}
}
diff --git a/packages/testing/src/Responses/JsonResponse.php b/packages/testing/src/Responses/JsonResponse.php
index d2d32fd6d..74ed4e0bb 100644
--- a/packages/testing/src/Responses/JsonResponse.php
+++ b/packages/testing/src/Responses/JsonResponse.php
@@ -25,8 +25,9 @@ public function __construct(
JsonSchema $schema,
JsonSerializable|SplFileInfo|stdClass|array|string|int|float|bool|null $content = null,
) {
- if ($content) {
+ if ($content !== null) {
$content = Args::getJson($content);
+ $content = new JsonMatches(Args::getJsonString($content));
}
parent::__construct(
@@ -34,9 +35,7 @@ public function __construct(
new JsonContentType(),
new JsonBody(...array_filter([
new JsonMatchesSchema($schema),
- $content
- ? new JsonMatches(Args::getJsonString($content))
- : null,
+ $content,
])),
);
}
diff --git a/packages/testing/src/Responses/Laravel/Json/ValidationErrorResponse.php b/packages/testing/src/Responses/Laravel/Json/ValidationErrorResponse.php
index d0a7e5714..517ae7fb7 100644
--- a/packages/testing/src/Responses/Laravel/Json/ValidationErrorResponse.php
+++ b/packages/testing/src/Responses/Laravel/Json/ValidationErrorResponse.php
@@ -32,7 +32,7 @@ public function __construct(?array $errors = null) {
new JsonContentType(),
new JsonBody(...array_filter([
new JsonMatchesSchema(new JsonSchemaFile(self::getTestData(self::class)->file('.json'))),
- $errors
+ $errors !== null && $errors !== []
? new JsonMatchesSchema(new JsonSchemaValue($this->getErrorsSchema($errors)))
: null,
])),
@@ -48,7 +48,7 @@ protected function getErrorsSchema(array $errors): array {
$properties = [];
foreach ($errors as $key => $error) {
- if (is_null($error) || (is_array($error) && !$error)) {
+ if (is_null($error) || (is_array($error) && $error !== [])) {
$properties[$key] = [
'type' => 'array',
'minItems' => 1,
diff --git a/packages/testing/src/Utils/TestData.php b/packages/testing/src/Utils/TestData.php
index cf591dfd4..0afc35f49 100644
--- a/packages/testing/src/Utils/TestData.php
+++ b/packages/testing/src/Utils/TestData.php
@@ -27,7 +27,7 @@ class TestData {
public function __construct(string $test) {
$path = (new ReflectionClass($test))->getFileName();
- if (!$path) {
+ if ($path === false) {
throw new InvalidArgumentClass('$test', $test);
}
diff --git a/packages/testing/src/Utils/WithTempFile.php b/packages/testing/src/Utils/WithTempFile.php
index 87459626e..0bfb28c13 100644
--- a/packages/testing/src/Utils/WithTempFile.php
+++ b/packages/testing/src/Utils/WithTempFile.php
@@ -20,7 +20,7 @@ public static function getTempFile(?string $content = null, string $suffix = '')
$path = $fs->tempnam(sys_get_temp_dir(), $pkg, $suffix);
$file = new SplFileInfo($path);
- if ($content) {
+ if ($content !== null) {
$fs->dumpFile($path, $content);
}
diff --git a/phpstan-baseline-well-known.neon b/phpstan-baseline-well-known.neon
index 235c8e578..732477740 100644
--- a/phpstan-baseline-well-known.neon
+++ b/phpstan-baseline-well-known.neon
@@ -5,7 +5,6 @@ parameters:
ignoreErrors:
# Unwanted strict rules
# (is there a better way to disable them?)
- - "#^Short ternary operator is not allowed\\. Use null coalesce operator if applicable or consider using long ternary\\.$#"
-
message: "#does not call parent constructor from#"
path: packages/**/*Test.php
@@ -15,7 +14,7 @@ parameters:
- "#^Dynamic call to static method Illuminate\\\\Contracts\\\\Foundation\\\\CachesConfiguration\\:\\:(configurationIsCached|routesAreCached|langPath)\\(\\)\\.$#"
- "#^Dynamic call to static method Illuminate\\\\Contracts\\\\Foundation\\\\CachesRoutes\\:\\:routesAreCached\\(\\)\\.$#"
- "#^Dynamic call to static method Illuminate\\\\Validation\\\\Factory\\:\\:(validate)\\(\\)\\.$#"
- - "#^Dynamic call to static method Illuminate\\\\Testing\\\\TestResponse\\:\\:assert[^(]+\\(\\)\\.$#"
+ - "#^Dynamic call to static method Illuminate\\\\Testing\\\\TestResponse\\<[^>]+\\>\\:\\:assert[^(]+\\(\\)\\.$#"
- "#^Dynamic call to static method Illuminate\\\\Database\\\\Eloquent\\\\Model(\\<[^>]+\\>)?\\:\\:[^(]+\\(\\)\\.$#"
- "#^Dynamic call to static method Illuminate\\\\Database\\\\Eloquent\\\\Builder(\\<[^>]+\\>)?\\:\\:[^(]+\\(\\)\\.$#"
- "#^Dynamic call to static method Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\[^\\\\]+(\\<[^>]+\\>)?\\:\\:[^(]+\\(\\)\\.$#"
@@ -69,12 +68,13 @@ parameters:
# PHPStan doesn't allow use `@var` and `assert()` for `$this` inside Closure yet
# https://github.com/phpstan/phpstan/issues/149
# https://github.com/phpstan/phpstan/issues/8904
+ # https://github.com/phpstan/phpstan/issues/11267
-
message: "#^PHPDoc tag @var with type Illuminate\\\\Database\\\\Eloquent\\\\Builder\\ is not subtype of native type \\$this\\(LastDragon_ru\\\\LaraASP\\\\Eloquent\\\\Mixins\\\\EloquentBuilderMixin\\)\\.$#"
paths:
- packages/eloquent/src/Mixins/EloquentBuilderMixin.php
-
- message: "#^PHPDoc tag @var with type Illuminate\\\\Testing\\\\TestResponse is not subtype of native type \\$this\\(LastDragon_ru\\\\LaraASP\\\\Testing\\\\Mixins\\\\TestResponseMixin\\)\\.$#"
+ message: "#^PHPDoc tag @var with type Illuminate\\\\Testing\\\\TestResponse\\ is not subtype of native type \\$this\\(LastDragon_ru\\\\LaraASP\\\\Testing\\\\Mixins\\\\TestResponseMixin\\)\\.$#"
paths:
- packages/testing/src/Mixins/TestResponseMixin.php
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index 81f632412..5d696927d 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -60,11 +60,6 @@ parameters:
count: 1
path: packages/spa/src/Http/Resources/Resource.php
- -
- message: "#^Method class@anonymous/packages/spa/src/Http/WithValueProviderTest\\.php\\:49\\:\\:validate\\(\\) has parameter \\$fail with no signature specified for Closure\\.$#"
- count: 1
- path: packages/spa/src/Http/WithValueProviderTest.php
-
-
message: "#^Cannot access property \\$id on mixed\\.$#"
count: 1
@@ -75,11 +70,6 @@ parameters:
count: 1
path: packages/spa/src/Validation/Rules/DateTimeRule.php
- -
- message: "#^Method LastDragon_ru\\\\LaraASP\\\\Spa\\\\Validation\\\\Rules\\\\Rule\\:\\:validate\\(\\) has parameter \\$fail with no signature specified for Closure\\.$#"
- count: 1
- path: packages/spa/src/Validation/Rules/Rule.php
-
-
message: "#^Parameter \\#1 \\$query of method LastDragon_ru\\\\LaraASP\\\\Testing\\\\Comparators\\\\DatabaseQueryComparator\\:\\:normalize\\(\\) expects LastDragon_ru\\\\LaraASP\\\\Testing\\\\Database\\\\QueryLog\\\\Query, mixed given\\.$#"
count: 2
diff --git a/vendor-bin/phpstan/larastan.neon b/phpstan-larastan.neon
similarity index 100%
rename from vendor-bin/phpstan/larastan.neon
rename to phpstan-larastan.neon
diff --git a/phpstan.neon b/phpstan.neon
index f64e92979..32d334c60 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -7,7 +7,7 @@ parameters:
- dev/storage
- dev/vendor (?)
scanDirectories:
- - vendor-bin/phpstan/vendor/larastan/larastan
+ - vendor/larastan/larastan
# The level 9 is the highest level
level: max
@@ -20,9 +20,6 @@ parameters:
checkBenevolentUnionTypes: true
checkUninitializedProperties: true
noEnvCallsOutsideOfConfig: true
- strictRules:
- strictArrayFilter: false
- booleansInConditions: false
# Package
classMustBeFinal:
@@ -47,22 +44,22 @@ parameters:
includes:
# Vendor
- - ./vendor-bin/phpstan/vendor/phpstan/phpstan/conf/bleedingEdge.neon
- - ./vendor-bin/phpstan/vendor/phpstan/phpstan-mockery/extension.neon
- - ./vendor-bin/phpstan/vendor/phpstan/phpstan-phpunit/extension.neon
- - ./vendor-bin/phpstan/vendor/phpstan/phpstan-phpunit/rules.neon
- - ./vendor-bin/phpstan/vendor/phpstan/phpstan-strict-rules/rules.neon
- - ./vendor-bin/phpstan/vendor/spaze/phpstan-disallowed-calls/extension.neon
- - ./vendor-bin/phpstan/vendor/spaze/phpstan-disallowed-calls/disallowed-dangerous-calls.neon
- - ./vendor-bin/phpstan/vendor/spaze/phpstan-disallowed-calls/disallowed-execution-calls.neon
- - ./vendor-bin/phpstan/vendor/spaze/phpstan-disallowed-calls/disallowed-insecure-calls.neon
- - ./vendor-bin/phpstan/vendor/spaze/phpstan-disallowed-calls/disallowed-loose-calls.neon
+ - ./vendor/phpstan/phpstan/conf/bleedingEdge.neon
+ - ./vendor/phpstan/phpstan-mockery/extension.neon
+ - ./vendor/phpstan/phpstan-phpunit/extension.neon
+ - ./vendor/phpstan/phpstan-phpunit/rules.neon
+ - ./vendor/phpstan/phpstan-strict-rules/rules.neon
+ - ./vendor/spaze/phpstan-disallowed-calls/extension.neon
+ - ./vendor/spaze/phpstan-disallowed-calls/disallowed-dangerous-calls.neon
+ - ./vendor/spaze/phpstan-disallowed-calls/disallowed-execution-calls.neon
+ - ./vendor/spaze/phpstan-disallowed-calls/disallowed-insecure-calls.neon
+ - ./vendor/spaze/phpstan-disallowed-calls/disallowed-loose-calls.neon
# Package
- - ./vendor-bin/phpstan/larastan.neon
- - ./vendor-bin/phpstan/vendor/lastdragon-ru/lara-asp-dev/src/PhpStan/Container/extension.neon
- - ./vendor-bin/phpstan/vendor/lastdragon-ru/lara-asp-dev/src/PhpStan/ClassMustBeFinal/extension.neon
- - ./vendor-bin/phpstan/vendor/lastdragon-ru/lara-asp-dev/src/PhpStan/ClassMustBeInternal/extension.neon
+ - ./phpstan-larastan.neon
+ - ./packages/dev/src/PhpStan/Container/extension.neon
+ - ./packages/dev/src/PhpStan/ClassMustBeFinal/extension.neon
+ - ./packages/dev/src/PhpStan/ClassMustBeInternal/extension.neon
# Baseline
- phpstan-baseline-well-known.neon
diff --git a/vendor-bin/phpstan/composer.json b/vendor-bin/phpstan/composer.json
deleted file mode 100644
index 434f5922f..000000000
--- a/vendor-bin/phpstan/composer.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "require-dev": {
- "phpstan/phpstan": "^1.11.4",
- "phpstan/phpstan-mockery": "^1.1",
- "phpstan/phpstan-phpunit": "^1.3",
- "phpstan/phpstan-strict-rules": "^1.5",
- "spaze/phpstan-disallowed-calls": "^3.0",
- "lastdragon-ru/lara-asp-core": "self.version",
- "lastdragon-ru/lara-asp-dev": "self.version"
- },
- "scripts": {
- "post-install-cmd": [
- "composer run-script dump:larastan"
- ],
- "post-update-cmd": [
- "composer run-script dump:larastan"
- ],
- "dump:larastan": [
- "LastDragon_ru\\LaraASP\\Dev\\PhpStan\\Larastan\\Extension::dump"
- ]
- },
- "minimum-stability": "dev",
- "prefer-stable": true,
- "config": {
- "sort-packages": true,
- "optimize-autoloader": true
- },
- "repositories": {
- "lara-asp": {
- "type": "path",
- "url": "../../packages/*"
- }
- }
-}
diff --git a/vendor-bin/phpstan/composer.lock b/vendor-bin/phpstan/composer.lock
deleted file mode 100644
index 09abf5814..000000000
--- a/vendor-bin/phpstan/composer.lock
+++ /dev/null
@@ -1,6478 +0,0 @@
-{
- "_readme": [
- "This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
- "This file is @generated automatically"
- ],
- "content-hash": "b524258a0c1f10f616f15f5dff8105c0",
- "packages": [],
- "packages-dev": [
- {
- "name": "brick/math",
- "version": "0.12.1",
- "source": {
- "type": "git",
- "url": "https://github.com/brick/math.git",
- "reference": "f510c0a40911935b77b86859eb5223d58d660df1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1",
- "reference": "f510c0a40911935b77b86859eb5223d58d660df1",
- "shasum": ""
- },
- "require": {
- "php": "^8.1"
- },
- "require-dev": {
- "php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^10.1",
- "vimeo/psalm": "5.16.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Brick\\Math\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Arbitrary-precision arithmetic library",
- "keywords": [
- "Arbitrary-precision",
- "BigInteger",
- "BigRational",
- "arithmetic",
- "bigdecimal",
- "bignum",
- "bignumber",
- "brick",
- "decimal",
- "integer",
- "math",
- "mathematics",
- "rational"
- ],
- "support": {
- "issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.12.1"
- },
- "funding": [
- {
- "url": "https://github.com/BenMorel",
- "type": "github"
- }
- ],
- "time": "2023-11-29T23:19:16+00:00"
- },
- {
- "name": "carbonphp/carbon-doctrine-types",
- "version": "3.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
- "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
- "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
- "shasum": ""
- },
- "require": {
- "php": "^8.1"
- },
- "conflict": {
- "doctrine/dbal": "<4.0.0 || >=5.0.0"
- },
- "require-dev": {
- "doctrine/dbal": "^4.0.0",
- "nesbot/carbon": "^2.71.0 || ^3.0.0",
- "phpunit/phpunit": "^10.3"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "KyleKatarn",
- "email": "kylekatarnls@gmail.com"
- }
- ],
- "description": "Types to use Carbon in Doctrine",
- "keywords": [
- "carbon",
- "date",
- "datetime",
- "doctrine",
- "time"
- ],
- "support": {
- "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
- "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
- },
- "funding": [
- {
- "url": "https://github.com/kylekatarnls",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/Carbon",
- "type": "open_collective"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
- "type": "tidelift"
- }
- ],
- "time": "2024-02-09T16:56:22+00:00"
- },
- {
- "name": "composer/semver",
- "version": "3.4.3",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/semver.git",
- "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
- "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.2 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "phpstan/phpstan": "^1.11",
- "symfony/phpunit-bridge": "^3 || ^7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Composer\\Semver\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nils Adermann",
- "email": "naderman@naderman.de",
- "homepage": "http://www.naderman.de"
- },
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
- },
- {
- "name": "Rob Bast",
- "email": "rob.bast@gmail.com",
- "homepage": "http://robbast.nl"
- }
- ],
- "description": "Semver library that offers utilities, version constraint parsing and validation.",
- "keywords": [
- "semantic",
- "semver",
- "validation",
- "versioning"
- ],
- "support": {
- "irc": "ircs://irc.libera.chat:6697/composer",
- "issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.4.3"
- },
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://github.com/composer",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-19T14:15:21+00:00"
- },
- {
- "name": "dflydev/dot-access-data",
- "version": "v3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/dflydev/dflydev-dot-access-data.git",
- "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f",
- "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "phpstan/phpstan": "^0.12.42",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
- "scrutinizer/ocular": "1.6.0",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^4.0.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Dflydev\\DotAccessData\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Dragonfly Development Inc.",
- "email": "info@dflydev.com",
- "homepage": "http://dflydev.com"
- },
- {
- "name": "Beau Simensen",
- "email": "beau@dflydev.com",
- "homepage": "http://beausimensen.com"
- },
- {
- "name": "Carlos Frutos",
- "email": "carlos@kiwing.it",
- "homepage": "https://github.com/cfrutos"
- },
- {
- "name": "Colin O'Dell",
- "email": "colinodell@gmail.com",
- "homepage": "https://www.colinodell.com"
- }
- ],
- "description": "Given a deep data structure, access data by dot notation.",
- "homepage": "https://github.com/dflydev/dflydev-dot-access-data",
- "keywords": [
- "access",
- "data",
- "dot",
- "notation"
- ],
- "support": {
- "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
- "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3"
- },
- "time": "2024-07-08T12:26:09+00:00"
- },
- {
- "name": "doctrine/deprecations",
- "version": "1.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/deprecations.git",
- "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
- "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9",
- "phpstan/phpstan": "1.4.10 || 1.10.15",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psalm/plugin-phpunit": "0.18.4",
- "psr/log": "^1 || ^2 || ^3",
- "vimeo/psalm": "4.30.0 || 5.12.0"
- },
- "suggest": {
- "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
- "homepage": "https://www.doctrine-project.org/",
- "support": {
- "issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
- },
- "time": "2024-01-30T19:34:25+00:00"
- },
- {
- "name": "doctrine/inflector",
- "version": "2.0.10",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/inflector.git",
- "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
- "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^11.0",
- "phpstan/phpstan": "^1.8",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.3",
- "phpunit/phpunit": "^8.5 || ^9.5",
- "vimeo/psalm": "^4.25 || ^5.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
- "homepage": "https://www.doctrine-project.org/projects/inflector.html",
- "keywords": [
- "inflection",
- "inflector",
- "lowercase",
- "manipulation",
- "php",
- "plural",
- "singular",
- "strings",
- "uppercase",
- "words"
- ],
- "support": {
- "issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.10"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
- "type": "tidelift"
- }
- ],
- "time": "2024-02-18T20:23:39+00:00"
- },
- {
- "name": "fruitcake/php-cors",
- "version": "v1.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/fruitcake/php-cors.git",
- "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b",
- "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b",
- "shasum": ""
- },
- "require": {
- "php": "^7.4|^8.0",
- "symfony/http-foundation": "^4.4|^5.4|^6|^7"
- },
- "require-dev": {
- "phpstan/phpstan": "^1.4",
- "phpunit/phpunit": "^9",
- "squizlabs/php_codesniffer": "^3.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Fruitcake\\Cors\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fruitcake",
- "homepage": "https://fruitcake.nl"
- },
- {
- "name": "Barryvdh",
- "email": "barryvdh@gmail.com"
- }
- ],
- "description": "Cross-origin resource sharing library for the Symfony HttpFoundation",
- "homepage": "https://github.com/fruitcake/php-cors",
- "keywords": [
- "cors",
- "laravel",
- "symfony"
- ],
- "support": {
- "issues": "https://github.com/fruitcake/php-cors/issues",
- "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0"
- },
- "funding": [
- {
- "url": "https://fruitcake.nl",
- "type": "custom"
- },
- {
- "url": "https://github.com/barryvdh",
- "type": "github"
- }
- ],
- "time": "2023-10-12T05:21:21+00:00"
- },
- {
- "name": "guzzlehttp/guzzle",
- "version": "7.9.2",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/guzzle.git",
- "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
- "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "guzzlehttp/promises": "^1.5.3 || ^2.0.3",
- "guzzlehttp/psr7": "^2.7.0",
- "php": "^7.2.5 || ^8.0",
- "psr/http-client": "^1.0",
- "symfony/deprecation-contracts": "^2.2 || ^3.0"
- },
- "provide": {
- "psr/http-client-implementation": "1.0"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.2",
- "ext-curl": "*",
- "guzzle/client-integration-tests": "3.0.2",
- "php-http/message-factory": "^1.1",
- "phpunit/phpunit": "^8.5.39 || ^9.6.20",
- "psr/log": "^1.1 || ^2.0 || ^3.0"
- },
- "suggest": {
- "ext-curl": "Required for CURL handler support",
- "ext-intl": "Required for Internationalized Domain Name (IDN) support",
- "psr/log": "Required for using the Log middleware"
- },
- "type": "library",
- "extra": {
- "bamarni-bin": {
- "bin-links": true,
- "forward-command": false
- }
- },
- "autoload": {
- "files": [
- "src/functions_include.php"
- ],
- "psr-4": {
- "GuzzleHttp\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- },
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "Jeremy Lindblom",
- "email": "jeremeamia@gmail.com",
- "homepage": "https://github.com/jeremeamia"
- },
- {
- "name": "George Mponos",
- "email": "gmponos@gmail.com",
- "homepage": "https://github.com/gmponos"
- },
- {
- "name": "Tobias Nyholm",
- "email": "tobias.nyholm@gmail.com",
- "homepage": "https://github.com/Nyholm"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://github.com/sagikazarmark"
- },
- {
- "name": "Tobias Schultze",
- "email": "webmaster@tubo-world.de",
- "homepage": "https://github.com/Tobion"
- }
- ],
- "description": "Guzzle is a PHP HTTP client library",
- "keywords": [
- "client",
- "curl",
- "framework",
- "http",
- "http client",
- "psr-18",
- "psr-7",
- "rest",
- "web service"
- ],
- "support": {
- "issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://github.com/Nyholm",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
- "type": "tidelift"
- }
- ],
- "time": "2024-07-24T11:22:20+00:00"
- },
- {
- "name": "guzzlehttp/promises",
- "version": "2.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/promises.git",
- "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
- "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
- "shasum": ""
- },
- "require": {
- "php": "^7.2.5 || ^8.0"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.39 || ^9.6.20"
- },
- "type": "library",
- "extra": {
- "bamarni-bin": {
- "bin-links": true,
- "forward-command": false
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Promise\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- },
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "Tobias Nyholm",
- "email": "tobias.nyholm@gmail.com",
- "homepage": "https://github.com/Nyholm"
- },
- {
- "name": "Tobias Schultze",
- "email": "webmaster@tubo-world.de",
- "homepage": "https://github.com/Tobion"
- }
- ],
- "description": "Guzzle promises library",
- "keywords": [
- "promise"
- ],
- "support": {
- "issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/2.0.3"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://github.com/Nyholm",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
- "type": "tidelift"
- }
- ],
- "time": "2024-07-18T10:29:17+00:00"
- },
- {
- "name": "guzzlehttp/psr7",
- "version": "2.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/psr7.git",
- "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
- "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
- "shasum": ""
- },
- "require": {
- "php": "^7.2.5 || ^8.0",
- "psr/http-factory": "^1.0",
- "psr/http-message": "^1.1 || ^2.0",
- "ralouphie/getallheaders": "^3.0"
- },
- "provide": {
- "psr/http-factory-implementation": "1.0",
- "psr/http-message-implementation": "1.0"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.2",
- "http-interop/http-factory-tests": "0.9.0",
- "phpunit/phpunit": "^8.5.39 || ^9.6.20"
- },
- "suggest": {
- "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
- },
- "type": "library",
- "extra": {
- "bamarni-bin": {
- "bin-links": true,
- "forward-command": false
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Psr7\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- },
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "George Mponos",
- "email": "gmponos@gmail.com",
- "homepage": "https://github.com/gmponos"
- },
- {
- "name": "Tobias Nyholm",
- "email": "tobias.nyholm@gmail.com",
- "homepage": "https://github.com/Nyholm"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://github.com/sagikazarmark"
- },
- {
- "name": "Tobias Schultze",
- "email": "webmaster@tubo-world.de",
- "homepage": "https://github.com/Tobion"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://sagikazarmark.hu"
- }
- ],
- "description": "PSR-7 message implementation that also provides common utility methods",
- "keywords": [
- "http",
- "message",
- "psr-7",
- "request",
- "response",
- "stream",
- "uri",
- "url"
- ],
- "support": {
- "issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.7.0"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://github.com/Nyholm",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
- "type": "tidelift"
- }
- ],
- "time": "2024-07-18T11:15:46+00:00"
- },
- {
- "name": "guzzlehttp/uri-template",
- "version": "v1.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/uri-template.git",
- "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c",
- "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c",
- "shasum": ""
- },
- "require": {
- "php": "^7.2.5 || ^8.0",
- "symfony/polyfill-php80": "^1.24"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.36 || ^9.6.15",
- "uri-template/tests": "1.0.0"
- },
- "type": "library",
- "extra": {
- "bamarni-bin": {
- "bin-links": true,
- "forward-command": false
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\UriTemplate\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- },
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "George Mponos",
- "email": "gmponos@gmail.com",
- "homepage": "https://github.com/gmponos"
- },
- {
- "name": "Tobias Nyholm",
- "email": "tobias.nyholm@gmail.com",
- "homepage": "https://github.com/Nyholm"
- }
- ],
- "description": "A polyfill class for uri_template of PHP",
- "keywords": [
- "guzzlehttp",
- "uri-template"
- ],
- "support": {
- "issues": "https://github.com/guzzle/uri-template/issues",
- "source": "https://github.com/guzzle/uri-template/tree/v1.0.3"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://github.com/Nyholm",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template",
- "type": "tidelift"
- }
- ],
- "time": "2023-12-03T19:50:20+00:00"
- },
- {
- "name": "illuminate/bus",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/bus.git",
- "reference": "96d0fba7928cd0bc93198b9310065917340125ed"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/bus/zipball/96d0fba7928cd0bc93198b9310065917340125ed",
- "reference": "96d0fba7928cd0bc93198b9310065917340125ed",
- "shasum": ""
- },
- "require": {
- "illuminate/collections": "^11.0",
- "illuminate/contracts": "^11.0",
- "illuminate/pipeline": "^11.0",
- "illuminate/support": "^11.0",
- "php": "^8.2"
- },
- "suggest": {
- "illuminate/queue": "Required to use closures when chaining jobs (^7.0)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\Bus\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Bus package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-08-31T23:42:47+00:00"
- },
- {
- "name": "illuminate/collections",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/collections.git",
- "reference": "cbea9d7a82984bbc1a9376498533cc77513f9a09"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/collections/zipball/cbea9d7a82984bbc1a9376498533cc77513f9a09",
- "reference": "cbea9d7a82984bbc1a9376498533cc77513f9a09",
- "shasum": ""
- },
- "require": {
- "illuminate/conditionable": "^11.0",
- "illuminate/contracts": "^11.0",
- "illuminate/macroable": "^11.0",
- "php": "^8.2"
- },
- "suggest": {
- "symfony/var-dumper": "Required to use the dump method (^7.0)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "files": [
- "helpers.php"
- ],
- "psr-4": {
- "Illuminate\\Support\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Collections package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-09-12T14:50:04+00:00"
- },
- {
- "name": "illuminate/conditionable",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/conditionable.git",
- "reference": "362dd761b9920367bca1427a902158225e9e3a23"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/conditionable/zipball/362dd761b9920367bca1427a902158225e9e3a23",
- "reference": "362dd761b9920367bca1427a902158225e9e3a23",
- "shasum": ""
- },
- "require": {
- "php": "^8.0.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\Support\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Conditionable package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-06-28T20:10:30+00:00"
- },
- {
- "name": "illuminate/console",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/console.git",
- "reference": "39baf2ed821a1a95ba7e75cde1e2f16ef2ac47b6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/console/zipball/39baf2ed821a1a95ba7e75cde1e2f16ef2ac47b6",
- "reference": "39baf2ed821a1a95ba7e75cde1e2f16ef2ac47b6",
- "shasum": ""
- },
- "require": {
- "ext-mbstring": "*",
- "illuminate/collections": "^11.0",
- "illuminate/contracts": "^11.0",
- "illuminate/macroable": "^11.0",
- "illuminate/support": "^11.0",
- "illuminate/view": "^11.0",
- "laravel/prompts": "^0.1.12",
- "nunomaduro/termwind": "^2.0",
- "php": "^8.2",
- "symfony/console": "^7.0",
- "symfony/polyfill-php83": "^1.28",
- "symfony/process": "^7.0"
- },
- "suggest": {
- "dragonmantank/cron-expression": "Required to use scheduler (^3.3.2).",
- "ext-pcntl": "Required to use signal trapping.",
- "guzzlehttp/guzzle": "Required to use the ping methods on schedules (^7.8).",
- "illuminate/bus": "Required to use the scheduled job dispatcher (^11.0).",
- "illuminate/container": "Required to use the scheduler (^11.0).",
- "illuminate/filesystem": "Required to use the generator command (^11.0).",
- "illuminate/queue": "Required to use closures for scheduled jobs (^11.0)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\Console\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Console package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-09-12T12:33:31+00:00"
- },
- {
- "name": "illuminate/container",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/container.git",
- "reference": "66d20471c8c55ef056044dc1ff16da90d7b4d649"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/container/zipball/66d20471c8c55ef056044dc1ff16da90d7b4d649",
- "reference": "66d20471c8c55ef056044dc1ff16da90d7b4d649",
- "shasum": ""
- },
- "require": {
- "illuminate/contracts": "^11.0",
- "php": "^8.2",
- "psr/container": "^1.1.1|^2.0.1"
- },
- "provide": {
- "psr/container-implementation": "1.1|2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\Container\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Container package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-09-11T20:15:17+00:00"
- },
- {
- "name": "illuminate/contracts",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/contracts.git",
- "reference": "5a4c6dcf633c1f69e1b70bbea1ef1b7d2186d3da"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/contracts/zipball/5a4c6dcf633c1f69e1b70bbea1ef1b7d2186d3da",
- "reference": "5a4c6dcf633c1f69e1b70bbea1ef1b7d2186d3da",
- "shasum": ""
- },
- "require": {
- "php": "^8.2",
- "psr/container": "^1.1.1|^2.0.1",
- "psr/simple-cache": "^1.0|^2.0|^3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\Contracts\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Contracts package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-09-12T15:25:08+00:00"
- },
- {
- "name": "illuminate/database",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/database.git",
- "reference": "98f3c91362e687e21f31a88eda8194c381a51953"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/database/zipball/98f3c91362e687e21f31a88eda8194c381a51953",
- "reference": "98f3c91362e687e21f31a88eda8194c381a51953",
- "shasum": ""
- },
- "require": {
- "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12",
- "ext-pdo": "*",
- "illuminate/collections": "^11.0",
- "illuminate/container": "^11.0",
- "illuminate/contracts": "^11.0",
- "illuminate/macroable": "^11.0",
- "illuminate/support": "^11.0",
- "php": "^8.2"
- },
- "suggest": {
- "ext-filter": "Required to use the Postgres database driver.",
- "fakerphp/faker": "Required to use the eloquent factory builder (^1.21).",
- "illuminate/console": "Required to use the database commands (^11.0).",
- "illuminate/events": "Required to use the observers with Eloquent (^11.0).",
- "illuminate/filesystem": "Required to use the migrations (^11.0).",
- "illuminate/pagination": "Required to paginate the result set (^11.0).",
- "symfony/finder": "Required to use Eloquent model factories (^7.0)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\Database\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Database package.",
- "homepage": "https://laravel.com",
- "keywords": [
- "database",
- "laravel",
- "orm",
- "sql"
- ],
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-09-12T18:04:04+00:00"
- },
- {
- "name": "illuminate/events",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/events.git",
- "reference": "cfd8a636234cc5b5f736f2987f33b0d471d974b3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/events/zipball/cfd8a636234cc5b5f736f2987f33b0d471d974b3",
- "reference": "cfd8a636234cc5b5f736f2987f33b0d471d974b3",
- "shasum": ""
- },
- "require": {
- "illuminate/bus": "^11.0",
- "illuminate/collections": "^11.0",
- "illuminate/container": "^11.0",
- "illuminate/contracts": "^11.0",
- "illuminate/macroable": "^11.0",
- "illuminate/support": "^11.0",
- "php": "^8.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "files": [
- "functions.php"
- ],
- "psr-4": {
- "Illuminate\\Events\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Events package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-08-07T14:43:54+00:00"
- },
- {
- "name": "illuminate/filesystem",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/filesystem.git",
- "reference": "87f93ffa6f1bcbe0dfd16ed97e3e1e537002c22d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/filesystem/zipball/87f93ffa6f1bcbe0dfd16ed97e3e1e537002c22d",
- "reference": "87f93ffa6f1bcbe0dfd16ed97e3e1e537002c22d",
- "shasum": ""
- },
- "require": {
- "illuminate/collections": "^11.0",
- "illuminate/contracts": "^11.0",
- "illuminate/macroable": "^11.0",
- "illuminate/support": "^11.0",
- "php": "^8.2",
- "symfony/finder": "^7.0"
- },
- "suggest": {
- "ext-fileinfo": "Required to use the Filesystem class.",
- "ext-ftp": "Required to use the Flysystem FTP driver.",
- "ext-hash": "Required to use the Filesystem class.",
- "illuminate/http": "Required for handling uploaded files (^7.0).",
- "league/flysystem": "Required to use the Flysystem local driver (^3.0.16).",
- "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
- "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
- "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
- "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
- "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).",
- "symfony/mime": "Required to enable support for guessing extensions (^7.0)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "files": [
- "functions.php"
- ],
- "psr-4": {
- "Illuminate\\Filesystem\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Filesystem package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-09-12T12:32:25+00:00"
- },
- {
- "name": "illuminate/http",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/http.git",
- "reference": "63e5cc3ddf87f7271fee6644274bc44e15b34af8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/http/zipball/63e5cc3ddf87f7271fee6644274bc44e15b34af8",
- "reference": "63e5cc3ddf87f7271fee6644274bc44e15b34af8",
- "shasum": ""
- },
- "require": {
- "ext-filter": "*",
- "fruitcake/php-cors": "^1.3",
- "guzzlehttp/guzzle": "^7.8",
- "guzzlehttp/uri-template": "^1.0",
- "illuminate/collections": "^11.0",
- "illuminate/macroable": "^11.0",
- "illuminate/session": "^11.0",
- "illuminate/support": "^11.0",
- "php": "^8.2",
- "symfony/http-foundation": "^7.0",
- "symfony/http-kernel": "^7.0",
- "symfony/mime": "^7.0",
- "symfony/polyfill-php83": "^1.28"
- },
- "suggest": {
- "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image()."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\Http\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Http package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-09-09T13:51:02+00:00"
- },
- {
- "name": "illuminate/macroable",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/macroable.git",
- "reference": "e1cb9e51b9ed5d3c9bc1ab431d0a52fe42a990ed"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/macroable/zipball/e1cb9e51b9ed5d3c9bc1ab431d0a52fe42a990ed",
- "reference": "e1cb9e51b9ed5d3c9bc1ab431d0a52fe42a990ed",
- "shasum": ""
- },
- "require": {
- "php": "^8.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\Support\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Macroable package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-06-28T20:10:30+00:00"
- },
- {
- "name": "illuminate/pipeline",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/pipeline.git",
- "reference": "ca9266eecf659f7e60c06758969b2ae3918ea3da"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/pipeline/zipball/ca9266eecf659f7e60c06758969b2ae3918ea3da",
- "reference": "ca9266eecf659f7e60c06758969b2ae3918ea3da",
- "shasum": ""
- },
- "require": {
- "illuminate/contracts": "^11.0",
- "illuminate/support": "^11.0",
- "php": "^8.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\Pipeline\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Pipeline package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-06-28T20:10:30+00:00"
- },
- {
- "name": "illuminate/process",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/process.git",
- "reference": "69df5be9de8389a2aed90dc2555b898ee0f3d231"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/process/zipball/69df5be9de8389a2aed90dc2555b898ee0f3d231",
- "reference": "69df5be9de8389a2aed90dc2555b898ee0f3d231",
- "shasum": ""
- },
- "require": {
- "illuminate/collections": "^11.0",
- "illuminate/contracts": "^11.0",
- "illuminate/macroable": "^11.0",
- "illuminate/support": "^11.0",
- "php": "^8.2",
- "symfony/process": "^7.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\Process\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Process package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-06-28T20:10:30+00:00"
- },
- {
- "name": "illuminate/session",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/session.git",
- "reference": "cc4be7c46678328858ef2aa692013536717f32ec"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/session/zipball/cc4be7c46678328858ef2aa692013536717f32ec",
- "reference": "cc4be7c46678328858ef2aa692013536717f32ec",
- "shasum": ""
- },
- "require": {
- "ext-ctype": "*",
- "ext-session": "*",
- "illuminate/collections": "^11.0",
- "illuminate/contracts": "^11.0",
- "illuminate/filesystem": "^11.0",
- "illuminate/support": "^11.0",
- "php": "^8.2",
- "symfony/finder": "^7.0",
- "symfony/http-foundation": "^7.0"
- },
- "suggest": {
- "illuminate/console": "Required to use the session:table command (^11.0)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\Session\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Session package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-08-08T13:30:23+00:00"
- },
- {
- "name": "illuminate/support",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/support.git",
- "reference": "8199097b4e24b05e8a035a6ea2fb5aeba645d71b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/support/zipball/8199097b4e24b05e8a035a6ea2fb5aeba645d71b",
- "reference": "8199097b4e24b05e8a035a6ea2fb5aeba645d71b",
- "shasum": ""
- },
- "require": {
- "doctrine/inflector": "^2.0",
- "ext-ctype": "*",
- "ext-filter": "*",
- "ext-mbstring": "*",
- "illuminate/collections": "^11.0",
- "illuminate/conditionable": "^11.0",
- "illuminate/contracts": "^11.0",
- "illuminate/macroable": "^11.0",
- "nesbot/carbon": "^2.72.2|^3.0",
- "php": "^8.2",
- "voku/portable-ascii": "^2.0"
- },
- "conflict": {
- "tightenco/collect": "<5.5.33"
- },
- "replace": {
- "spatie/once": "*"
- },
- "suggest": {
- "illuminate/filesystem": "Required to use the composer class (^11.0).",
- "laravel/serializable-closure": "Required to use the once function (^1.3).",
- "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^2.0.2).",
- "ramsey/uuid": "Required to use Str::uuid() (^4.7).",
- "symfony/process": "Required to use the composer class (^7.0).",
- "symfony/uid": "Required to use Str::ulid() (^7.0).",
- "symfony/var-dumper": "Required to use the dd function (^7.0).",
- "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "files": [
- "helpers.php"
- ],
- "psr-4": {
- "Illuminate\\Support\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate Support package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-09-12T15:25:39+00:00"
- },
- {
- "name": "illuminate/view",
- "version": "v11.23.5",
- "source": {
- "type": "git",
- "url": "https://github.com/illuminate/view.git",
- "reference": "1e8753ef1a3be0fe913b530babd08f6cc238bca0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/illuminate/view/zipball/1e8753ef1a3be0fe913b530babd08f6cc238bca0",
- "reference": "1e8753ef1a3be0fe913b530babd08f6cc238bca0",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "illuminate/collections": "^11.0",
- "illuminate/container": "^11.0",
- "illuminate/contracts": "^11.0",
- "illuminate/events": "^11.0",
- "illuminate/filesystem": "^11.0",
- "illuminate/macroable": "^11.0",
- "illuminate/support": "^11.0",
- "php": "^8.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "11.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Illuminate\\View\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Illuminate View package.",
- "homepage": "https://laravel.com",
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2024-09-09T14:45:14+00:00"
- },
- {
- "name": "larastan/larastan",
- "version": "v2.9.8",
- "source": {
- "type": "git",
- "url": "https://github.com/larastan/larastan.git",
- "reference": "340badd89b0eb5bddbc503a4829c08cf9a2819d7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/larastan/larastan/zipball/340badd89b0eb5bddbc503a4829c08cf9a2819d7",
- "reference": "340badd89b0eb5bddbc503a4829c08cf9a2819d7",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "illuminate/console": "^9.52.16 || ^10.28.0 || ^11.0",
- "illuminate/container": "^9.52.16 || ^10.28.0 || ^11.0",
- "illuminate/contracts": "^9.52.16 || ^10.28.0 || ^11.0",
- "illuminate/database": "^9.52.16 || ^10.28.0 || ^11.0",
- "illuminate/http": "^9.52.16 || ^10.28.0 || ^11.0",
- "illuminate/pipeline": "^9.52.16 || ^10.28.0 || ^11.0",
- "illuminate/support": "^9.52.16 || ^10.28.0 || ^11.0",
- "php": "^8.0.2",
- "phpmyadmin/sql-parser": "^5.9.0",
- "phpstan/phpstan": "^1.11.2"
- },
- "require-dev": {
- "doctrine/coding-standard": "^12.0",
- "nikic/php-parser": "^4.19.1",
- "orchestra/canvas": "^7.11.1 || ^8.11.0 || ^9.0.2",
- "orchestra/testbench": "^7.33.0 || ^8.13.0 || ^9.0.3",
- "phpunit/phpunit": "^9.6.13 || ^10.5.16"
- },
- "suggest": {
- "orchestra/testbench": "Using Larastan for analysing a package needs Testbench"
- },
- "type": "phpstan-extension",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- },
- "phpstan": {
- "includes": [
- "extension.neon"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Larastan\\Larastan\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Can Vural",
- "email": "can9119@gmail.com"
- },
- {
- "name": "Nuno Maduro",
- "email": "enunomaduro@gmail.com"
- }
- ],
- "description": "Larastan - Discover bugs in your code without running it. A phpstan/phpstan wrapper for Laravel",
- "keywords": [
- "PHPStan",
- "code analyse",
- "code analysis",
- "larastan",
- "laravel",
- "package",
- "php",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/larastan/larastan/issues",
- "source": "https://github.com/larastan/larastan/tree/v2.9.8"
- },
- "funding": [
- {
- "url": "https://www.paypal.com/paypalme/enunomaduro",
- "type": "custom"
- },
- {
- "url": "https://github.com/canvural",
- "type": "github"
- },
- {
- "url": "https://github.com/nunomaduro",
- "type": "github"
- },
- {
- "url": "https://www.patreon.com/nunomaduro",
- "type": "patreon"
- }
- ],
- "time": "2024-07-06T17:46:02+00:00"
- },
- {
- "name": "laravel/prompts",
- "version": "v0.1.25",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/prompts.git",
- "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laravel/prompts/zipball/7b4029a84c37cb2725fc7f011586e2997040bc95",
- "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95",
- "shasum": ""
- },
- "require": {
- "ext-mbstring": "*",
- "illuminate/collections": "^10.0|^11.0",
- "php": "^8.1",
- "symfony/console": "^6.2|^7.0"
- },
- "conflict": {
- "illuminate/console": ">=10.17.0 <10.25.0",
- "laravel/framework": ">=10.17.0 <10.25.0"
- },
- "require-dev": {
- "mockery/mockery": "^1.5",
- "pestphp/pest": "^2.3",
- "phpstan/phpstan": "^1.11",
- "phpstan/phpstan-mockery": "^1.1"
- },
- "suggest": {
- "ext-pcntl": "Required for the spinner to be animated."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "0.1.x-dev"
- }
- },
- "autoload": {
- "files": [
- "src/helpers.php"
- ],
- "psr-4": {
- "Laravel\\Prompts\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Add beautiful and user-friendly forms to your command-line applications.",
- "support": {
- "issues": "https://github.com/laravel/prompts/issues",
- "source": "https://github.com/laravel/prompts/tree/v0.1.25"
- },
- "time": "2024-08-12T22:06:33+00:00"
- },
- {
- "name": "lastdragon-ru/lara-asp-core",
- "version": "dev-main",
- "dist": {
- "type": "path",
- "url": "../../packages/core",
- "reference": "a2fb967bdabf3de4a416f71f71a4d3e5846ba425"
- },
- "require": {
- "illuminate/console": "^10.34.0|^11.0.0",
- "illuminate/container": "^10.34.0|^11.0.0",
- "illuminate/contracts": "^10.34.0|^11.0.0",
- "illuminate/support": "^10.34.0|^11.0.0",
- "php": "^8.2|^8.3",
- "symfony/deprecation-contracts": "^3.0.0",
- "symfony/filesystem": "^6.3.0|^7.0.0",
- "symfony/polyfill-php83": "^1.28"
- },
- "require-dev": {
- "lastdragon-ru/lara-asp-testing": "self.version",
- "mockery/mockery": "^1.6.5",
- "orchestra/testbench": "^8.0.0|^9.0.0",
- "phpunit/phpunit": "^10.1.0|^11.0.0"
- },
- "type": "library",
- "extra": {
- "lara-asp": {
- "ci": {
- "required-extensions": {
- "league/flysystem": [
- "ext-fileinfo"
- ],
- "illuminate/console": [
- "ext-mbstring"
- ]
- }
- }
- },
- "laravel": {
- "providers": [
- "LastDragon_ru\\LaraASP\\Core\\Provider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "LastDragon_ru\\LaraASP\\Core\\": "src/"
- },
- "exclude-from-classmap": [
- "src/**Test.php",
- "src/Testing/**.php"
- ]
- },
- "autoload-dev": {
- "psr-4": {
- "LastDragon_ru\\LaraASP\\Core\\Docs\\": "docs"
- },
- "exclude-from-classmap": [
- "docs/"
- ]
- },
- "license": [
- "MIT"
- ],
- "description": "The Awesome Set of Packages for Laravel - The Core.",
- "homepage": "https://github.com/LastDragon-ru/lara-asp",
- "keywords": [
- "laravel",
- "laravel-package",
- "laravel-queue",
- "php",
- "queue"
- ],
- "support": {
- "issues": "https://github.com/LastDragon-ru/lara-asp/issues",
- "source": "https://github.com/LastDragon-ru/lara-asp",
- "forum": "https://github.com/LastDragon-ru/lara-asp/discussions"
- },
- "transport-options": {
- "relative": true
- }
- },
- {
- "name": "lastdragon-ru/lara-asp-dev",
- "version": "dev-main",
- "dist": {
- "type": "path",
- "url": "../../packages/dev",
- "reference": "854b6f60f647713a6681bbd9ca44d4885002acf0"
- },
- "require": {
- "illuminate/contracts": "^10.34.0|^11.0.0",
- "illuminate/support": "^10.34.0|^11.0.0",
- "larastan/larastan": "^2.8.1",
- "lastdragon-ru/lara-asp-core": "self.version",
- "lastdragon-ru/lara-asp-documentator": "self.version",
- "nette/neon": "^3.4",
- "nikic/php-parser": "^4.18|^5.0",
- "php": "^8.2|^8.3",
- "phpstan/phpstan": "^1.10",
- "symfony/var-dumper": "^6.3.0|^7.0.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.1.0|^11.0.0"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "LastDragon_ru\\LaraASP\\Dev\\App\\Provider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "LastDragon_ru\\LaraASP\\Dev\\": "src/"
- },
- "exclude-from-classmap": [
- "src/**Test.php"
- ]
- },
- "license": [
- "MIT"
- ],
- "description": "The Awesome Set of Packages for Laravel - Dev tools.",
- "homepage": "https://github.com/LastDragon-ru/lara-asp",
- "keywords": [
- "dev",
- "php",
- "phpstan",
- "phpstan-extension",
- "phpstan-rule"
- ],
- "support": {
- "issues": "https://github.com/LastDragon-ru/lara-asp/issues",
- "source": "https://github.com/LastDragon-ru/lara-asp",
- "forum": "https://github.com/LastDragon-ru/lara-asp/discussions"
- },
- "transport-options": {
- "relative": true
- }
- },
- {
- "name": "lastdragon-ru/lara-asp-documentator",
- "version": "dev-main",
- "dist": {
- "type": "path",
- "url": "../../packages/documentator",
- "reference": "4bb7390da487f7df7e3979cc974a0edf50d2aa9c"
- },
- "require": {
- "composer/semver": "^3.2",
- "ext-filter": "*",
- "ext-mbstring": "*",
- "illuminate/console": "^10.34.0|^11.0.0",
- "illuminate/contracts": "^10.34.0|^11.0.0",
- "illuminate/process": "^10.34.0|^11.0.0",
- "illuminate/support": "^10.34.0|^11.0.0",
- "lastdragon-ru/lara-asp-core": "self.version",
- "lastdragon-ru/lara-asp-formatter": "self.version",
- "lastdragon-ru/lara-asp-graphql-printer": "self.version",
- "lastdragon-ru/lara-asp-serializer": "self.version",
- "league/commonmark": "^2.5.1",
- "league/config": "^1.1.1",
- "nikic/php-parser": "^4.18|^5.0",
- "php": "^8.2|^8.3",
- "phpstan/phpdoc-parser": "^1.25",
- "symfony/console": "^6.3.0|^7.0.0",
- "symfony/deprecation-contracts": "^3.0.0",
- "symfony/filesystem": "^6.3.0|^7.0.0",
- "symfony/finder": "^6.3.0|^7.0.0",
- "symfony/polyfill-php83": "^1.28",
- "symfony/serializer": "^6.3.3|^7.0.0"
- },
- "require-dev": {
- "lastdragon-ru/lara-asp-testing": "self.version",
- "mockery/mockery": "^1.6.5",
- "orchestra/testbench": "^8.0.0|^9.0.0",
- "phpunit/phpunit": "^10.1.0|^11.0.0",
- "webonyx/graphql-php": "^15.4.0"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "LastDragon_ru\\LaraASP\\Documentator\\Provider"
- ]
- },
- "lara-asp": {
- "ci": {
- "required-extensions": {
- "league/flysystem": [
- "ext-fileinfo"
- ],
- "illuminate/console": [
- "ext-mbstring"
- ]
- }
- }
- }
- },
- "autoload": {
- "psr-4": {
- "LastDragon_ru\\LaraASP\\Documentator\\": "src/"
- },
- "exclude-from-classmap": [
- "src/**Test.php",
- "src/Testing/**.php"
- ]
- },
- "autoload-dev": {
- "psr-4": {
- "LastDragon_ru\\LaraASP\\Documentator\\Docs\\": "docs"
- },
- "exclude-from-classmap": [
- "docs/"
- ]
- },
- "license": [
- "MIT"
- ],
- "description": "The Awesome Set of Packages for Laravel - The Documentator.",
- "homepage": "https://github.com/LastDragon-ru/lara-asp",
- "keywords": [
- "documetation",
- "laravel",
- "laravel-package",
- "php",
- "utils"
- ],
- "support": {
- "issues": "https://github.com/LastDragon-ru/lara-asp/issues",
- "source": "https://github.com/LastDragon-ru/lara-asp",
- "forum": "https://github.com/LastDragon-ru/lara-asp/discussions"
- },
- "transport-options": {
- "relative": true
- }
- },
- {
- "name": "lastdragon-ru/lara-asp-formatter",
- "version": "dev-main",
- "dist": {
- "type": "path",
- "url": "../../packages/formatter",
- "reference": "c6139925539ce20c40b5c04905c6503faffcdaab"
- },
- "require": {
- "ext-bcmath": "*",
- "ext-intl": "*",
- "ext-mbstring": "*",
- "illuminate/macroable": "^10.34.0|^11.0.0",
- "illuminate/support": "^10.34.0|^11.0.0",
- "lastdragon-ru/lara-asp-core": "self.version",
- "php": "^8.2|^8.3",
- "symfony/polyfill-php83": "^1.28"
- },
- "require-dev": {
- "lastdragon-ru/lara-asp-testing": "self.version",
- "orchestra/testbench": "^8.0.0|^9.0.0",
- "phpunit/phpunit": "^10.1.0|^11.0.0"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "LastDragon_ru\\LaraASP\\Formatter\\Provider"
- ]
- },
- "lara-asp": {
- "ci": {
- "required-extensions": {
- "league/flysystem": [
- "ext-fileinfo"
- ]
- }
- }
- }
- },
- "autoload": {
- "psr-4": {
- "LastDragon_ru\\LaraASP\\Formatter\\": "src/"
- },
- "exclude-from-classmap": [
- "src/**Test.php",
- "src/Testing/**.php"
- ]
- },
- "autoload-dev": {
- "psr-4": {
- "LastDragon_ru\\LaraASP\\Formatter\\Docs\\": "docs"
- },
- "exclude-from-classmap": [
- "docs/"
- ]
- },
- "license": [
- "MIT"
- ],
- "description": "The Awesome Set of Packages for Laravel - The Formatter.",
- "homepage": "https://github.com/LastDragon-ru/lara-asp",
- "keywords": [
- "formatter",
- "intl",
- "laravel",
- "laravel-package",
- "php"
- ],
- "support": {
- "issues": "https://github.com/LastDragon-ru/lara-asp/issues",
- "source": "https://github.com/LastDragon-ru/lara-asp",
- "forum": "https://github.com/LastDragon-ru/lara-asp/discussions"
- },
- "transport-options": {
- "relative": true
- }
- },
- {
- "name": "lastdragon-ru/lara-asp-graphql-printer",
- "version": "dev-main",
- "dist": {
- "type": "path",
- "url": "../../packages/graphql-printer",
- "reference": "99ede8e795f25a8b29b7ce07f84e0513af6b09cc"
- },
- "require": {
- "ext-mbstring": "*",
- "php": "^8.2|^8.3",
- "symfony/polyfill-php83": "^1.28",
- "webonyx/graphql-php": "^15.4.0"
- },
- "require-dev": {
- "composer/class-map-generator": "^1.0",
- "lastdragon-ru/lara-asp-testing": "self.version",
- "mockery/mockery": "^1.6.5",
- "phpunit/phpunit": "^10.1.0|^11.0.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "LastDragon_ru\\LaraASP\\GraphQLPrinter\\": "src/"
- },
- "exclude-from-classmap": [
- "src/**Test.php",
- "src/Testing/**.php"
- ]
- },
- "autoload-dev": {
- "psr-4": {
- "LastDragon_ru\\LaraASP\\GraphQLPrinter\\Docs\\": "docs"
- },
- "exclude-from-classmap": [
- "docs/"
- ]
- },
- "license": [
- "MIT"
- ],
- "description": "The Awesome Set of Packages for Laravel - The GraphQL Printer.",
- "homepage": "https://github.com/LastDragon-ru/lara-asp",
- "keywords": [
- "GraphQL",
- "GraphQL Printer",
- "GraphQL Schema Printer",
- "php"
- ],
- "support": {
- "issues": "https://github.com/LastDragon-ru/lara-asp/issues",
- "source": "https://github.com/LastDragon-ru/lara-asp",
- "forum": "https://github.com/LastDragon-ru/lara-asp/discussions"
- },
- "transport-options": {
- "relative": true
- }
- },
- {
- "name": "lastdragon-ru/lara-asp-serializer",
- "version": "dev-main",
- "dist": {
- "type": "path",
- "url": "../../packages/serializer",
- "reference": "25faa7a957b4a03f63a513a9be2337b62040c641"
- },
- "require": {
- "illuminate/container": "^10.34.0|^11.0.0",
- "illuminate/contracts": "^10.34.0|^11.0.0",
- "illuminate/database": "^10.34.0|^11.0.0",
- "illuminate/support": "^10.34.0|^11.0.0",
- "lastdragon-ru/lara-asp-core": "self.version",
- "php": "^8.2|^8.3",
- "phpdocumentor/type-resolver": "^1.7",
- "phpstan/phpdoc-parser": "^1.25",
- "symfony/deprecation-contracts": "^3.0.0",
- "symfony/polyfill-php83": "^1.28",
- "symfony/property-access": "^6.3.0|^7.0.0",
- "symfony/property-info": "^6.3.9|^7.0.0",
- "symfony/serializer": "^6.3.3|^7.0.0"
- },
- "require-dev": {
- "lastdragon-ru/lara-asp-testing": "self.version",
- "mockery/mockery": "^1.6.5",
- "orchestra/testbench": "^8.0.0|^9.0.0",
- "phpunit/phpunit": "^10.1.0|^11.0.0"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "LastDragon_ru\\LaraASP\\Serializer\\Provider"
- ]
- },
- "lara-asp": {
- "ci": {
- "required-extensions": {
- "league/flysystem": [
- "ext-fileinfo"
- ]
- }
- }
- }
- },
- "autoload": {
- "psr-4": {
- "LastDragon_ru\\LaraASP\\Serializer\\": "src/"
- },
- "exclude-from-classmap": [
- "src/**Test.php",
- "src/Testing/**.php"
- ]
- },
- "autoload-dev": {
- "psr-4": {
- "LastDragon_ru\\LaraASP\\Serializer\\Docs\\": "docs"
- },
- "exclude-from-classmap": [
- "docs/"
- ]
- },
- "license": [
- "MIT"
- ],
- "description": "The Awesome Set of Packages for Laravel - The Serializer.",
- "homepage": "https://github.com/LastDragon-ru/lara-asp",
- "keywords": [
- "laravel",
- "laravel-package",
- "php",
- "serializer"
- ],
- "support": {
- "issues": "https://github.com/LastDragon-ru/lara-asp/issues",
- "source": "https://github.com/LastDragon-ru/lara-asp",
- "forum": "https://github.com/LastDragon-ru/lara-asp/discussions"
- },
- "transport-options": {
- "relative": true
- }
- },
- {
- "name": "league/commonmark",
- "version": "2.5.3",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/commonmark.git",
- "reference": "b650144166dfa7703e62a22e493b853b58d874b0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b650144166dfa7703e62a22e493b853b58d874b0",
- "reference": "b650144166dfa7703e62a22e493b853b58d874b0",
- "shasum": ""
- },
- "require": {
- "ext-mbstring": "*",
- "league/config": "^1.1.1",
- "php": "^7.4 || ^8.0",
- "psr/event-dispatcher": "^1.0",
- "symfony/deprecation-contracts": "^2.1 || ^3.0",
- "symfony/polyfill-php80": "^1.16"
- },
- "require-dev": {
- "cebe/markdown": "^1.0",
- "commonmark/cmark": "0.31.1",
- "commonmark/commonmark.js": "0.31.1",
- "composer/package-versions-deprecated": "^1.8",
- "embed/embed": "^4.4",
- "erusev/parsedown": "^1.0",
- "ext-json": "*",
- "github/gfm": "0.29.0",
- "michelf/php-markdown": "^1.4 || ^2.0",
- "nyholm/psr7": "^1.5",
- "phpstan/phpstan": "^1.8.2",
- "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0",
- "scrutinizer/ocular": "^1.8.1",
- "symfony/finder": "^5.3 | ^6.0 || ^7.0",
- "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0",
- "unleashedtech/php-coding-standard": "^3.1.1",
- "vimeo/psalm": "^4.24.0 || ^5.0.0"
- },
- "suggest": {
- "symfony/yaml": "v2.3+ required if using the Front Matter extension"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.6-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\CommonMark\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Colin O'Dell",
- "email": "colinodell@gmail.com",
- "homepage": "https://www.colinodell.com",
- "role": "Lead Developer"
- }
- ],
- "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)",
- "homepage": "https://commonmark.thephpleague.com",
- "keywords": [
- "commonmark",
- "flavored",
- "gfm",
- "github",
- "github-flavored",
- "markdown",
- "md",
- "parser"
- ],
- "support": {
- "docs": "https://commonmark.thephpleague.com/",
- "forum": "https://github.com/thephpleague/commonmark/discussions",
- "issues": "https://github.com/thephpleague/commonmark/issues",
- "rss": "https://github.com/thephpleague/commonmark/releases.atom",
- "source": "https://github.com/thephpleague/commonmark"
- },
- "funding": [
- {
- "url": "https://www.colinodell.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://www.paypal.me/colinpodell/10.00",
- "type": "custom"
- },
- {
- "url": "https://github.com/colinodell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
- "type": "tidelift"
- }
- ],
- "time": "2024-08-16T11:46:16+00:00"
- },
- {
- "name": "league/config",
- "version": "v1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/config.git",
- "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
- "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
- "shasum": ""
- },
- "require": {
- "dflydev/dot-access-data": "^3.0.1",
- "nette/schema": "^1.2",
- "php": "^7.4 || ^8.0"
- },
- "require-dev": {
- "phpstan/phpstan": "^1.8.2",
- "phpunit/phpunit": "^9.5.5",
- "scrutinizer/ocular": "^1.8.1",
- "unleashedtech/php-coding-standard": "^3.1",
- "vimeo/psalm": "^4.7.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.2-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\Config\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Colin O'Dell",
- "email": "colinodell@gmail.com",
- "homepage": "https://www.colinodell.com",
- "role": "Lead Developer"
- }
- ],
- "description": "Define configuration arrays with strict schemas and access values with dot notation",
- "homepage": "https://config.thephpleague.com",
- "keywords": [
- "array",
- "config",
- "configuration",
- "dot",
- "dot-access",
- "nested",
- "schema"
- ],
- "support": {
- "docs": "https://config.thephpleague.com/",
- "issues": "https://github.com/thephpleague/config/issues",
- "rss": "https://github.com/thephpleague/config/releases.atom",
- "source": "https://github.com/thephpleague/config"
- },
- "funding": [
- {
- "url": "https://www.colinodell.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://www.paypal.me/colinpodell/10.00",
- "type": "custom"
- },
- {
- "url": "https://github.com/colinodell",
- "type": "github"
- }
- ],
- "time": "2022-12-11T20:36:23+00:00"
- },
- {
- "name": "nesbot/carbon",
- "version": "3.8.0",
- "source": {
- "type": "git",
- "url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bbd3eef89af8ba66a3aa7952b5439168fbcc529f",
- "reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f",
- "shasum": ""
- },
- "require": {
- "carbonphp/carbon-doctrine-types": "*",
- "ext-json": "*",
- "php": "^8.1",
- "psr/clock": "^1.0",
- "symfony/clock": "^6.3 || ^7.0",
- "symfony/polyfill-mbstring": "^1.0",
- "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0"
- },
- "provide": {
- "psr/clock-implementation": "1.0"
- },
- "require-dev": {
- "doctrine/dbal": "^3.6.3 || ^4.0",
- "doctrine/orm": "^2.15.2 || ^3.0",
- "friendsofphp/php-cs-fixer": "^3.57.2",
- "kylekatarnls/multi-tester": "^2.5.3",
- "ondrejmirtes/better-reflection": "^6.25.0.4",
- "phpmd/phpmd": "^2.15.0",
- "phpstan/extension-installer": "^1.3.1",
- "phpstan/phpstan": "^1.11.2",
- "phpunit/phpunit": "^10.5.20",
- "squizlabs/php_codesniffer": "^3.9.0"
- },
- "bin": [
- "bin/carbon"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev",
- "dev-2.x": "2.x-dev"
- },
- "laravel": {
- "providers": [
- "Carbon\\Laravel\\ServiceProvider"
- ]
- },
- "phpstan": {
- "includes": [
- "extension.neon"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Carbon\\": "src/Carbon/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Brian Nesbitt",
- "email": "brian@nesbot.com",
- "homepage": "https://markido.com"
- },
- {
- "name": "kylekatarnls",
- "homepage": "https://github.com/kylekatarnls"
- }
- ],
- "description": "An API extension for DateTime that supports 281 different languages.",
- "homepage": "https://carbon.nesbot.com",
- "keywords": [
- "date",
- "datetime",
- "time"
- ],
- "support": {
- "docs": "https://carbon.nesbot.com/docs",
- "issues": "https://github.com/briannesbitt/Carbon/issues",
- "source": "https://github.com/briannesbitt/Carbon"
- },
- "funding": [
- {
- "url": "https://github.com/sponsors/kylekatarnls",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/Carbon#sponsor",
- "type": "opencollective"
- },
- {
- "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
- "type": "tidelift"
- }
- ],
- "time": "2024-08-19T06:22:39+00:00"
- },
- {
- "name": "nette/neon",
- "version": "v3.4.3",
- "source": {
- "type": "git",
- "url": "https://github.com/nette/neon.git",
- "reference": "c8481c104431c8d94cc88424a1e21f47f8c93280"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nette/neon/zipball/c8481c104431c8d94cc88424a1e21f47f8c93280",
- "reference": "c8481c104431c8d94cc88424a1e21f47f8c93280",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "php": "8.0 - 8.3"
- },
- "require-dev": {
- "nette/tester": "^2.4",
- "phpstan/phpstan": "^1.0",
- "tracy/tracy": "^2.7"
- },
- "bin": [
- "bin/neon-lint"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause",
- "GPL-2.0-only",
- "GPL-3.0-only"
- ],
- "authors": [
- {
- "name": "David Grudl",
- "homepage": "https://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "https://nette.org/contributors"
- }
- ],
- "description": "🍸 Nette NEON: encodes and decodes NEON file format.",
- "homepage": "https://ne-on.org",
- "keywords": [
- "export",
- "import",
- "neon",
- "nette",
- "yaml"
- ],
- "support": {
- "issues": "https://github.com/nette/neon/issues",
- "source": "https://github.com/nette/neon/tree/v3.4.3"
- },
- "time": "2024-06-26T14:53:59+00:00"
- },
- {
- "name": "nette/schema",
- "version": "v1.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/nette/schema.git",
- "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
- "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
- "shasum": ""
- },
- "require": {
- "nette/utils": "^4.0",
- "php": "8.1 - 8.3"
- },
- "require-dev": {
- "nette/tester": "^2.4",
- "phpstan/phpstan-nette": "^1.0",
- "tracy/tracy": "^2.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.3-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause",
- "GPL-2.0-only",
- "GPL-3.0-only"
- ],
- "authors": [
- {
- "name": "David Grudl",
- "homepage": "https://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "https://nette.org/contributors"
- }
- ],
- "description": "📐 Nette Schema: validating data structures against a given Schema.",
- "homepage": "https://nette.org",
- "keywords": [
- "config",
- "nette"
- ],
- "support": {
- "issues": "https://github.com/nette/schema/issues",
- "source": "https://github.com/nette/schema/tree/v1.3.0"
- },
- "time": "2023-12-11T11:54:22+00:00"
- },
- {
- "name": "nette/utils",
- "version": "v4.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/nette/utils.git",
- "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
- "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
- "shasum": ""
- },
- "require": {
- "php": "8.0 - 8.4"
- },
- "conflict": {
- "nette/finder": "<3",
- "nette/schema": "<1.2.2"
- },
- "require-dev": {
- "jetbrains/phpstorm-attributes": "dev-master",
- "nette/tester": "^2.5",
- "phpstan/phpstan": "^1.0",
- "tracy/tracy": "^2.9"
- },
- "suggest": {
- "ext-gd": "to use Image",
- "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
- "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
- "ext-json": "to use Nette\\Utils\\Json",
- "ext-mbstring": "to use Strings::lower() etc...",
- "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause",
- "GPL-2.0-only",
- "GPL-3.0-only"
- ],
- "authors": [
- {
- "name": "David Grudl",
- "homepage": "https://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "https://nette.org/contributors"
- }
- ],
- "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
- "homepage": "https://nette.org",
- "keywords": [
- "array",
- "core",
- "datetime",
- "images",
- "json",
- "nette",
- "paginator",
- "password",
- "slugify",
- "string",
- "unicode",
- "utf-8",
- "utility",
- "validation"
- ],
- "support": {
- "issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v4.0.5"
- },
- "time": "2024-08-07T15:39:19+00:00"
- },
- {
- "name": "nikic/php-parser",
- "version": "v5.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb",
- "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb",
- "shasum": ""
- },
- "require": {
- "ext-ctype": "*",
- "ext-json": "*",
- "ext-tokenizer": "*",
- "php": ">=7.4"
- },
- "require-dev": {
- "ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^9.0"
- },
- "bin": [
- "bin/php-parse"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "PhpParser\\": "lib/PhpParser"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Nikita Popov"
- }
- ],
- "description": "A PHP parser written in PHP",
- "keywords": [
- "parser",
- "php"
- ],
- "support": {
- "issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v5.2.0"
- },
- "time": "2024-09-15T16:40:33+00:00"
- },
- {
- "name": "nunomaduro/termwind",
- "version": "v2.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/nunomaduro/termwind.git",
- "reference": "e5f21eade88689536c0cdad4c3cd75f3ed26e01a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/e5f21eade88689536c0cdad4c3cd75f3ed26e01a",
- "reference": "e5f21eade88689536c0cdad4c3cd75f3ed26e01a",
- "shasum": ""
- },
- "require": {
- "ext-mbstring": "*",
- "php": "^8.2",
- "symfony/console": "^7.0.4"
- },
- "require-dev": {
- "ergebnis/phpstan-rules": "^2.2.0",
- "illuminate/console": "^11.1.1",
- "laravel/pint": "^1.15.0",
- "mockery/mockery": "^1.6.11",
- "pestphp/pest": "^2.34.6",
- "phpstan/phpstan": "^1.10.66",
- "phpstan/phpstan-strict-rules": "^1.5.2",
- "symfony/var-dumper": "^7.0.4",
- "thecodingmachine/phpstan-strict-rules": "^1.0.0"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "Termwind\\Laravel\\TermwindServiceProvider"
- ]
- },
- "branch-alias": {
- "dev-2.x": "2.x-dev"
- }
- },
- "autoload": {
- "files": [
- "src/Functions.php"
- ],
- "psr-4": {
- "Termwind\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nuno Maduro",
- "email": "enunomaduro@gmail.com"
- }
- ],
- "description": "Its like Tailwind CSS, but for the console.",
- "keywords": [
- "cli",
- "console",
- "css",
- "package",
- "php",
- "style"
- ],
- "support": {
- "issues": "https://github.com/nunomaduro/termwind/issues",
- "source": "https://github.com/nunomaduro/termwind/tree/v2.1.0"
- },
- "funding": [
- {
- "url": "https://www.paypal.com/paypalme/enunomaduro",
- "type": "custom"
- },
- {
- "url": "https://github.com/nunomaduro",
- "type": "github"
- },
- {
- "url": "https://github.com/xiCO2k",
- "type": "github"
- }
- ],
- "time": "2024-09-05T15:25:50+00:00"
- },
- {
- "name": "phpdocumentor/reflection-common",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-2.x": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
- ],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
- "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
- },
- "time": "2020-06-27T09:03:43+00:00"
- },
- {
- "name": "phpdocumentor/type-resolver",
- "version": "1.8.2",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "153ae662783729388a584b4361f2545e4d841e3c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c",
- "reference": "153ae662783729388a584b4361f2545e4d841e3c",
- "shasum": ""
- },
- "require": {
- "doctrine/deprecations": "^1.0",
- "php": "^7.3 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0",
- "phpstan/phpdoc-parser": "^1.13"
- },
- "require-dev": {
- "ext-tokenizer": "*",
- "phpbench/phpbench": "^1.2",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "^1.8",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpunit/phpunit": "^9.5",
- "rector/rector": "^0.13.9",
- "vimeo/psalm": "^4.25"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-1.x": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
- "support": {
- "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2"
- },
- "time": "2024-02-23T11:10:43+00:00"
- },
- {
- "name": "phpmyadmin/sql-parser",
- "version": "5.10.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpmyadmin/sql-parser.git",
- "reference": "91d980ab76c3f152481e367f62b921adc38af451"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/91d980ab76c3f152481e367f62b921adc38af451",
- "reference": "91d980ab76c3f152481e367f62b921adc38af451",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "symfony/polyfill-mbstring": "^1.3",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "phpmyadmin/motranslator": "<3.0"
- },
- "require-dev": {
- "phpbench/phpbench": "^1.1",
- "phpmyadmin/coding-standard": "^3.0",
- "phpmyadmin/motranslator": "^4.0 || ^5.0",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "^1.9.12",
- "phpstan/phpstan-phpunit": "^1.3.3",
- "phpunit/phpunit": "^8.5 || ^9.6",
- "psalm/plugin-phpunit": "^0.16.1",
- "vimeo/psalm": "^4.11",
- "zumba/json-serializer": "~3.0.2"
- },
- "suggest": {
- "ext-mbstring": "For best performance",
- "phpmyadmin/motranslator": "Translate messages to your favorite locale"
- },
- "bin": [
- "bin/highlight-query",
- "bin/lint-query",
- "bin/sql-parser",
- "bin/tokenize-query"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "PhpMyAdmin\\SqlParser\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "authors": [
- {
- "name": "The phpMyAdmin Team",
- "email": "developers@phpmyadmin.net",
- "homepage": "https://www.phpmyadmin.net/team/"
- }
- ],
- "description": "A validating SQL lexer and parser with a focus on MySQL dialect.",
- "homepage": "https://github.com/phpmyadmin/sql-parser",
- "keywords": [
- "analysis",
- "lexer",
- "parser",
- "query linter",
- "sql",
- "sql lexer",
- "sql linter",
- "sql parser",
- "sql syntax highlighter",
- "sql tokenizer"
- ],
- "support": {
- "issues": "https://github.com/phpmyadmin/sql-parser/issues",
- "source": "https://github.com/phpmyadmin/sql-parser"
- },
- "funding": [
- {
- "url": "https://www.phpmyadmin.net/donate/",
- "type": "other"
- }
- ],
- "time": "2024-08-29T20:56:34+00:00"
- },
- {
- "name": "phpstan/phpdoc-parser",
- "version": "1.30.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "51b95ec8670af41009e2b2b56873bad96682413e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e",
- "reference": "51b95ec8670af41009e2b2b56873bad96682413e",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "doctrine/annotations": "^2.0",
- "nikic/php-parser": "^4.15",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^1.5",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.0",
- "phpunit/phpunit": "^9.5",
- "symfony/process": "^5.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "PHPStan\\PhpDocParser\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "PHPDoc parser with support for nullable, intersection and generic types",
- "support": {
- "issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.1"
- },
- "time": "2024-09-07T20:13:05+00:00"
- },
- {
- "name": "phpstan/phpstan",
- "version": "1.12.4",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpstan.git",
- "reference": "ffa517cb918591b93acc9b95c0bebdcd0e4538bd"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/ffa517cb918591b93acc9b95c0bebdcd0e4538bd",
- "reference": "ffa517cb918591b93acc9b95c0bebdcd0e4538bd",
- "shasum": ""
- },
- "require": {
- "php": "^7.2|^8.0"
- },
- "conflict": {
- "phpstan/phpstan-shim": "*"
- },
- "bin": [
- "phpstan",
- "phpstan.phar"
- ],
- "type": "library",
- "autoload": {
- "files": [
- "bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "PHPStan - PHP Static Analysis Tool",
- "keywords": [
- "dev",
- "static analysis"
- ],
- "support": {
- "docs": "https://phpstan.org/user-guide/getting-started",
- "forum": "https://github.com/phpstan/phpstan/discussions",
- "issues": "https://github.com/phpstan/phpstan/issues",
- "security": "https://github.com/phpstan/phpstan/security/policy",
- "source": "https://github.com/phpstan/phpstan-src"
- },
- "funding": [
- {
- "url": "https://github.com/ondrejmirtes",
- "type": "github"
- },
- {
- "url": "https://github.com/phpstan",
- "type": "github"
- }
- ],
- "time": "2024-09-19T07:58:01+00:00"
- },
- {
- "name": "phpstan/phpstan-mockery",
- "version": "1.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpstan-mockery.git",
- "reference": "98cac6e256b4ee60fdeb26a7dd81bb271b454e80"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan-mockery/zipball/98cac6e256b4ee60fdeb26a7dd81bb271b454e80",
- "reference": "98cac6e256b4ee60fdeb26a7dd81bb271b454e80",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "phpstan/phpstan": "^1.12"
- },
- "require-dev": {
- "mockery/mockery": "^1.6.11",
- "nikic/php-parser": "^4.13.0",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/phpstan-phpunit": "^1.4",
- "phpstan/phpstan-strict-rules": "^1.6",
- "phpunit/phpunit": "^9.5"
- },
- "type": "phpstan-extension",
- "extra": {
- "phpstan": {
- "includes": [
- "extension.neon"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "PHPStan\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "PHPStan Mockery extension",
- "support": {
- "issues": "https://github.com/phpstan/phpstan-mockery/issues",
- "source": "https://github.com/phpstan/phpstan-mockery/tree/1.1.3"
- },
- "time": "2024-09-11T15:47:29+00:00"
- },
- {
- "name": "phpstan/phpstan-phpunit",
- "version": "1.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpstan-phpunit.git",
- "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/f3ea021866f4263f07ca3636bf22c64be9610c11",
- "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "phpstan/phpstan": "^1.11"
- },
- "conflict": {
- "phpunit/phpunit": "<7.0"
- },
- "require-dev": {
- "nikic/php-parser": "^4.13.0",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/phpstan-strict-rules": "^1.5.1",
- "phpunit/phpunit": "^9.5"
- },
- "type": "phpstan-extension",
- "extra": {
- "phpstan": {
- "includes": [
- "extension.neon",
- "rules.neon"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "PHPStan\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "PHPUnit extensions and rules for PHPStan",
- "support": {
- "issues": "https://github.com/phpstan/phpstan-phpunit/issues",
- "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.4.0"
- },
- "time": "2024-04-20T06:39:00+00:00"
- },
- {
- "name": "phpstan/phpstan-strict-rules",
- "version": "1.6.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpstan-strict-rules.git",
- "reference": "363f921dd8441777d4fc137deb99beb486c77df1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/363f921dd8441777d4fc137deb99beb486c77df1",
- "reference": "363f921dd8441777d4fc137deb99beb486c77df1",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "phpstan/phpstan": "^1.11"
- },
- "require-dev": {
- "nikic/php-parser": "^4.13.0",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/phpstan-deprecation-rules": "^1.1",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^9.5"
- },
- "type": "phpstan-extension",
- "extra": {
- "phpstan": {
- "includes": [
- "rules.neon"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "PHPStan\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Extra strict and opinionated rules for PHPStan",
- "support": {
- "issues": "https://github.com/phpstan/phpstan-strict-rules/issues",
- "source": "https://github.com/phpstan/phpstan-strict-rules/tree/1.6.0"
- },
- "time": "2024-04-20T06:37:51+00:00"
- },
- {
- "name": "psr/clock",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/clock.git",
- "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
- "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
- "shasum": ""
- },
- "require": {
- "php": "^7.0 || ^8.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Psr\\Clock\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for reading the clock.",
- "homepage": "https://github.com/php-fig/clock",
- "keywords": [
- "clock",
- "now",
- "psr",
- "psr-20",
- "time"
- ],
- "support": {
- "issues": "https://github.com/php-fig/clock/issues",
- "source": "https://github.com/php-fig/clock/tree/1.0.0"
- },
- "time": "2022-11-25T14:36:26+00:00"
- },
- {
- "name": "psr/container",
- "version": "2.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
- "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
- "shasum": ""
- },
- "require": {
- "php": ">=7.4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Container\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common Container Interface (PHP FIG PSR-11)",
- "homepage": "https://github.com/php-fig/container",
- "keywords": [
- "PSR-11",
- "container",
- "container-interface",
- "container-interop",
- "psr"
- ],
- "support": {
- "issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/2.0.2"
- },
- "time": "2021-11-05T16:47:00+00:00"
- },
- {
- "name": "psr/event-dispatcher",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/event-dispatcher.git",
- "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
- "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\EventDispatcher\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Standard interfaces for event handling.",
- "keywords": [
- "events",
- "psr",
- "psr-14"
- ],
- "support": {
- "issues": "https://github.com/php-fig/event-dispatcher/issues",
- "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
- },
- "time": "2019-01-08T18:20:26+00:00"
- },
- {
- "name": "psr/http-client",
- "version": "1.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-client.git",
- "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
- "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
- "shasum": ""
- },
- "require": {
- "php": "^7.0 || ^8.0",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Client\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP clients",
- "homepage": "https://github.com/php-fig/http-client",
- "keywords": [
- "http",
- "http-client",
- "psr",
- "psr-18"
- ],
- "support": {
- "source": "https://github.com/php-fig/http-client"
- },
- "time": "2023-09-23T14:17:50+00:00"
- },
- {
- "name": "psr/http-factory",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-factory.git",
- "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
- "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
- "keywords": [
- "factory",
- "http",
- "message",
- "psr",
- "psr-17",
- "psr-7",
- "request",
- "response"
- ],
- "support": {
- "source": "https://github.com/php-fig/http-factory"
- },
- "time": "2024-04-15T12:06:14+00:00"
- },
- {
- "name": "psr/http-message",
- "version": "2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
- "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP messages",
- "homepage": "https://github.com/php-fig/http-message",
- "keywords": [
- "http",
- "http-message",
- "psr",
- "psr-7",
- "request",
- "response"
- ],
- "support": {
- "source": "https://github.com/php-fig/http-message/tree/2.0"
- },
- "time": "2023-04-04T09:54:51+00:00"
- },
- {
- "name": "psr/log",
- "version": "3.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
- "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
- "shasum": ""
- },
- "require": {
- "php": ">=8.0.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Log\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for logging libraries",
- "homepage": "https://github.com/php-fig/log",
- "keywords": [
- "log",
- "psr",
- "psr-3"
- ],
- "support": {
- "source": "https://github.com/php-fig/log/tree/3.0.2"
- },
- "time": "2024-09-11T13:17:53+00:00"
- },
- {
- "name": "psr/simple-cache",
- "version": "3.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/simple-cache.git",
- "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
- "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
- "shasum": ""
- },
- "require": {
- "php": ">=8.0.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\SimpleCache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interfaces for simple caching",
- "keywords": [
- "cache",
- "caching",
- "psr",
- "psr-16",
- "simple-cache"
- ],
- "support": {
- "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
- },
- "time": "2021-10-29T13:26:27+00:00"
- },
- {
- "name": "ralouphie/getallheaders",
- "version": "3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/ralouphie/getallheaders.git",
- "reference": "120b605dfeb996808c31b6477290a714d356e822"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
- "reference": "120b605dfeb996808c31b6477290a714d356e822",
- "shasum": ""
- },
- "require": {
- "php": ">=5.6"
- },
- "require-dev": {
- "php-coveralls/php-coveralls": "^2.1",
- "phpunit/phpunit": "^5 || ^6.5"
- },
- "type": "library",
- "autoload": {
- "files": [
- "src/getallheaders.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ralph Khattar",
- "email": "ralph.khattar@gmail.com"
- }
- ],
- "description": "A polyfill for getallheaders.",
- "support": {
- "issues": "https://github.com/ralouphie/getallheaders/issues",
- "source": "https://github.com/ralouphie/getallheaders/tree/develop"
- },
- "time": "2019-03-08T08:55:37+00:00"
- },
- {
- "name": "spaze/phpstan-disallowed-calls",
- "version": "v3.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/spaze/phpstan-disallowed-calls.git",
- "reference": "f7f1dc8d5ceeb2d0532dc9df66d13964b4baa5f4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/spaze/phpstan-disallowed-calls/zipball/f7f1dc8d5ceeb2d0532dc9df66d13964b4baa5f4",
- "reference": "f7f1dc8d5ceeb2d0532dc9df66d13964b4baa5f4",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "phpstan/phpstan": "^1.10.52"
- },
- "require-dev": {
- "nette/neon": "^3.2",
- "nikic/php-parser": "^4.13 || ^5.0",
- "php-parallel-lint/php-console-highlighter": "^1.0",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpunit/phpunit": "^8.5 || ^10.1 || ^11.0",
- "spaze/coding-standard": "^1.7"
- },
- "type": "phpstan-extension",
- "extra": {
- "phpstan": {
- "includes": [
- "extension.neon"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Spaze\\PHPStan\\Rules\\Disallowed\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michal Špaček",
- "email": "mail@michalspacek.cz",
- "homepage": "https://www.michalspacek.cz"
- }
- ],
- "description": "PHPStan rules to detect disallowed method & function calls, constant, namespace & superglobal usages",
- "keywords": [
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/spaze/phpstan-disallowed-calls/issues",
- "source": "https://github.com/spaze/phpstan-disallowed-calls/tree/v3.4.0"
- },
- "funding": [
- {
- "url": "https://github.com/spaze",
- "type": "github"
- }
- ],
- "time": "2024-05-14T16:23:53+00:00"
- },
- {
- "name": "symfony/clock",
- "version": "v7.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/clock.git",
- "reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/clock/zipball/3dfc8b084853586de51dd1441c6242c76a28cbe7",
- "reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "psr/clock": "^1.0",
- "symfony/polyfill-php83": "^1.28"
- },
- "provide": {
- "psr/clock-implementation": "1.0"
- },
- "type": "library",
- "autoload": {
- "files": [
- "Resources/now.php"
- ],
- "psr-4": {
- "Symfony\\Component\\Clock\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Decouples applications from the system clock",
- "homepage": "https://symfony.com",
- "keywords": [
- "clock",
- "psr20",
- "time"
- ],
- "support": {
- "source": "https://github.com/symfony/clock/tree/v7.1.1"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:57:53+00:00"
- },
- {
- "name": "symfony/console",
- "version": "v7.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/1eed7af6961d763e7832e874d7f9b21c3ea9c111",
- "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^6.4|^7.0"
- },
- "conflict": {
- "symfony/dependency-injection": "<6.4",
- "symfony/dotenv": "<6.4",
- "symfony/event-dispatcher": "<6.4",
- "symfony/lock": "<6.4",
- "symfony/process": "<6.4"
- },
- "provide": {
- "psr/log-implementation": "1.0|2.0|3.0"
- },
- "require-dev": {
- "psr/log": "^1|^2|^3",
- "symfony/config": "^6.4|^7.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/event-dispatcher": "^6.4|^7.0",
- "symfony/http-foundation": "^6.4|^7.0",
- "symfony/http-kernel": "^6.4|^7.0",
- "symfony/lock": "^6.4|^7.0",
- "symfony/messenger": "^6.4|^7.0",
- "symfony/process": "^6.4|^7.0",
- "symfony/stopwatch": "^6.4|^7.0",
- "symfony/var-dumper": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Console\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Eases the creation of beautiful and testable command line interfaces",
- "homepage": "https://symfony.com",
- "keywords": [
- "cli",
- "command-line",
- "console",
- "terminal"
- ],
- "support": {
- "source": "https://github.com/symfony/console/tree/v7.1.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-08-15T22:48:53+00:00"
- },
- {
- "name": "symfony/deprecation-contracts",
- "version": "v3.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
- "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "files": [
- "function.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "A generic function and convention to trigger deprecation notices",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-04-18T09:32:20+00:00"
- },
- {
- "name": "symfony/error-handler",
- "version": "v7.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/error-handler.git",
- "reference": "432bb369952795c61ca1def65e078c4a80dad13c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/432bb369952795c61ca1def65e078c4a80dad13c",
- "reference": "432bb369952795c61ca1def65e078c4a80dad13c",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^6.4|^7.0"
- },
- "conflict": {
- "symfony/deprecation-contracts": "<2.5",
- "symfony/http-kernel": "<6.4"
- },
- "require-dev": {
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-kernel": "^6.4|^7.0",
- "symfony/serializer": "^6.4|^7.0"
- },
- "bin": [
- "Resources/bin/patch-type-declarations"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\ErrorHandler\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides tools to manage errors and ease debugging PHP code",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/error-handler/tree/v7.1.3"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-07-26T13:02:51+00:00"
- },
- {
- "name": "symfony/event-dispatcher",
- "version": "v7.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
- "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/event-dispatcher-contracts": "^2.5|^3"
- },
- "conflict": {
- "symfony/dependency-injection": "<6.4",
- "symfony/service-contracts": "<2.5"
- },
- "provide": {
- "psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "2.0|3.0"
- },
- "require-dev": {
- "psr/log": "^1|^2|^3",
- "symfony/config": "^6.4|^7.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/error-handler": "^6.4|^7.0",
- "symfony/expression-language": "^6.4|^7.0",
- "symfony/http-foundation": "^6.4|^7.0",
- "symfony/service-contracts": "^2.5|^3",
- "symfony/stopwatch": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\EventDispatcher\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:57:53+00:00"
- },
- {
- "name": "symfony/event-dispatcher-contracts",
- "version": "v3.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
- "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "psr/event-dispatcher": "^1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\EventDispatcher\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Generic abstractions related to dispatching event",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-04-18T09:32:20+00:00"
- },
- {
- "name": "symfony/filesystem",
- "version": "v7.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/filesystem.git",
- "reference": "92a91985250c251de9b947a14bb2c9390b1a562c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c",
- "reference": "92a91985250c251de9b947a14bb2c9390b1a562c",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.8"
- },
- "require-dev": {
- "symfony/process": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Filesystem\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides basic utilities for the filesystem",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/filesystem/tree/v7.1.2"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-06-28T10:03:55+00:00"
- },
- {
- "name": "symfony/finder",
- "version": "v7.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/finder.git",
- "reference": "d95bbf319f7d052082fb7af147e0f835a695e823"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/d95bbf319f7d052082fb7af147e0f835a695e823",
- "reference": "d95bbf319f7d052082fb7af147e0f835a695e823",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "symfony/filesystem": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Finder\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Finds files and directories via an intuitive fluent interface",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/finder/tree/v7.1.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-08-13T14:28:19+00:00"
- },
- {
- "name": "symfony/http-foundation",
- "version": "v7.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-foundation.git",
- "reference": "f602d5c17d1fa02f8019ace2687d9d136b7f4a1a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f602d5c17d1fa02f8019ace2687d9d136b7f4a1a",
- "reference": "f602d5c17d1fa02f8019ace2687d9d136b7f4a1a",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php83": "^1.27"
- },
- "conflict": {
- "doctrine/dbal": "<3.6",
- "symfony/cache": "<6.4"
- },
- "require-dev": {
- "doctrine/dbal": "^3.6|^4",
- "predis/predis": "^1.1|^2.0",
- "symfony/cache": "^6.4|^7.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/expression-language": "^6.4|^7.0",
- "symfony/http-kernel": "^6.4|^7.0",
- "symfony/mime": "^6.4|^7.0",
- "symfony/rate-limiter": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\HttpFoundation\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Defines an object-oriented layer for the HTTP specification",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/http-foundation/tree/v7.1.3"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-07-26T12:41:01+00:00"
- },
- {
- "name": "symfony/http-kernel",
- "version": "v7.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-kernel.git",
- "reference": "6efcbd1b3f444f631c386504fc83eeca25963747"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6efcbd1b3f444f631c386504fc83eeca25963747",
- "reference": "6efcbd1b3f444f631c386504fc83eeca25963747",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "psr/log": "^1|^2|^3",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/error-handler": "^6.4|^7.0",
- "symfony/event-dispatcher": "^6.4|^7.0",
- "symfony/http-foundation": "^6.4|^7.0",
- "symfony/polyfill-ctype": "^1.8"
- },
- "conflict": {
- "symfony/browser-kit": "<6.4",
- "symfony/cache": "<6.4",
- "symfony/config": "<6.4",
- "symfony/console": "<6.4",
- "symfony/dependency-injection": "<6.4",
- "symfony/doctrine-bridge": "<6.4",
- "symfony/form": "<6.4",
- "symfony/http-client": "<6.4",
- "symfony/http-client-contracts": "<2.5",
- "symfony/mailer": "<6.4",
- "symfony/messenger": "<6.4",
- "symfony/translation": "<6.4",
- "symfony/translation-contracts": "<2.5",
- "symfony/twig-bridge": "<6.4",
- "symfony/validator": "<6.4",
- "symfony/var-dumper": "<6.4",
- "twig/twig": "<3.0.4"
- },
- "provide": {
- "psr/log-implementation": "1.0|2.0|3.0"
- },
- "require-dev": {
- "psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^6.4|^7.0",
- "symfony/clock": "^6.4|^7.0",
- "symfony/config": "^6.4|^7.0",
- "symfony/console": "^6.4|^7.0",
- "symfony/css-selector": "^6.4|^7.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/dom-crawler": "^6.4|^7.0",
- "symfony/expression-language": "^6.4|^7.0",
- "symfony/finder": "^6.4|^7.0",
- "symfony/http-client-contracts": "^2.5|^3",
- "symfony/process": "^6.4|^7.0",
- "symfony/property-access": "^7.1",
- "symfony/routing": "^6.4|^7.0",
- "symfony/serializer": "^7.1",
- "symfony/stopwatch": "^6.4|^7.0",
- "symfony/translation": "^6.4|^7.0",
- "symfony/translation-contracts": "^2.5|^3",
- "symfony/uid": "^6.4|^7.0",
- "symfony/validator": "^6.4|^7.0",
- "symfony/var-dumper": "^6.4|^7.0",
- "symfony/var-exporter": "^6.4|^7.0",
- "twig/twig": "^3.0.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\HttpKernel\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides a structured process for converting a Request into a Response",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/http-kernel/tree/v7.1.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-08-30T17:02:28+00:00"
- },
- {
- "name": "symfony/mime",
- "version": "v7.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/mime.git",
- "reference": "ccaa6c2503db867f472a587291e764d6a1e58758"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/ccaa6c2503db867f472a587291e764d6a1e58758",
- "reference": "ccaa6c2503db867f472a587291e764d6a1e58758",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0"
- },
- "conflict": {
- "egulias/email-validator": "~3.0.0",
- "phpdocumentor/reflection-docblock": "<3.2.2",
- "phpdocumentor/type-resolver": "<1.4.0",
- "symfony/mailer": "<6.4",
- "symfony/serializer": "<6.4.3|>7.0,<7.0.3"
- },
- "require-dev": {
- "egulias/email-validator": "^2.1.10|^3.1|^4",
- "league/html-to-markdown": "^5.0",
- "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/process": "^6.4|^7.0",
- "symfony/property-access": "^6.4|^7.0",
- "symfony/property-info": "^6.4|^7.0",
- "symfony/serializer": "^6.4.3|^7.0.3"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Mime\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Allows manipulating MIME messages",
- "homepage": "https://symfony.com",
- "keywords": [
- "mime",
- "mime-type"
- ],
- "support": {
- "source": "https://github.com/symfony/mime/tree/v7.1.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-08-13T14:28:19+00:00"
- },
- {
- "name": "symfony/polyfill-ctype",
- "version": "v1.31.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
- "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "provide": {
- "ext-ctype": "*"
- },
- "suggest": {
- "ext-ctype": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for ctype functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
- },
- {
- "name": "symfony/polyfill-intl-grapheme",
- "version": "v1.31.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
- "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for intl's grapheme_* functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "grapheme",
- "intl",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
- },
- {
- "name": "symfony/polyfill-intl-idn",
- "version": "v1.31.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773",
- "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2",
- "symfony/polyfill-intl-normalizer": "^1.10"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Idn\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Laurent Bassin",
- "email": "laurent@bassin.info"
- },
- {
- "name": "Trevor Rowbotham",
- "email": "trevor.rowbotham@pm.me"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "idn",
- "intl",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
- },
- {
- "name": "symfony/polyfill-intl-normalizer",
- "version": "v1.31.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "3833d7255cc303546435cb650316bff708a1c75c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
- "reference": "3833d7255cc303546435cb650316bff708a1c75c",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for intl's Normalizer class and related functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "intl",
- "normalizer",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
- },
- {
- "name": "symfony/polyfill-mbstring",
- "version": "v1.31.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
- "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "provide": {
- "ext-mbstring": "*"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for the Mbstring extension",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "mbstring",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
- },
- {
- "name": "symfony/polyfill-php80",
- "version": "v1.31.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
- "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
- },
- {
- "name": "symfony/polyfill-php83",
- "version": "v1.31.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php83.git",
- "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491",
- "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php83\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
- },
- {
- "name": "symfony/process",
- "version": "v7.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/7f2f542c668ad6c313dc4a5e9c3321f733197eca",
- "reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Process\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Executes commands in sub-processes",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/process/tree/v7.1.3"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-07-26T12:44:47+00:00"
- },
- {
- "name": "symfony/property-access",
- "version": "v7.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/property-access.git",
- "reference": "6c709f97103355016e5782d0622437ae381012ad"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/property-access/zipball/6c709f97103355016e5782d0622437ae381012ad",
- "reference": "6c709f97103355016e5782d0622437ae381012ad",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/property-info": "^6.4|^7.0"
- },
- "require-dev": {
- "symfony/cache": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\PropertyAccess\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides functions to read and write from/to an object or array using a simple string notation",
- "homepage": "https://symfony.com",
- "keywords": [
- "access",
- "array",
- "extraction",
- "index",
- "injection",
- "object",
- "property",
- "property-path",
- "reflection"
- ],
- "support": {
- "source": "https://github.com/symfony/property-access/tree/v7.1.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-08-30T16:12:47+00:00"
- },
- {
- "name": "symfony/property-info",
- "version": "v7.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/property-info.git",
- "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/property-info/zipball/88a279df2db5b7919cac6f35d6a5d1d7147e6a9b",
- "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/string": "^6.4|^7.0",
- "symfony/type-info": "^7.1"
- },
- "conflict": {
- "phpdocumentor/reflection-docblock": "<5.2",
- "phpdocumentor/type-resolver": "<1.5.1",
- "symfony/dependency-injection": "<6.4",
- "symfony/serializer": "<6.4"
- },
- "require-dev": {
- "phpdocumentor/reflection-docblock": "^5.2",
- "phpstan/phpdoc-parser": "^1.0",
- "symfony/cache": "^6.4|^7.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/serializer": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\PropertyInfo\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "dunglas@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Extracts information about PHP class' properties using metadata of popular sources",
- "homepage": "https://symfony.com",
- "keywords": [
- "doctrine",
- "phpdoc",
- "property",
- "symfony",
- "type",
- "validator"
- ],
- "support": {
- "source": "https://github.com/symfony/property-info/tree/v7.1.3"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-07-26T07:36:36+00:00"
- },
- {
- "name": "symfony/serializer",
- "version": "v7.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/serializer.git",
- "reference": "0158b0e91b7cf7e744a6fb9acaeb613d1ca40dbb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/serializer/zipball/0158b0e91b7cf7e744a6fb9acaeb613d1ca40dbb",
- "reference": "0158b0e91b7cf7e744a6fb9acaeb613d1ca40dbb",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/polyfill-ctype": "~1.8"
- },
- "conflict": {
- "phpdocumentor/reflection-docblock": "<3.2.2",
- "phpdocumentor/type-resolver": "<1.4.0",
- "symfony/dependency-injection": "<6.4",
- "symfony/property-access": "<6.4",
- "symfony/property-info": "<6.4",
- "symfony/uid": "<6.4",
- "symfony/validator": "<6.4",
- "symfony/yaml": "<6.4"
- },
- "require-dev": {
- "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0",
- "seld/jsonlint": "^1.10",
- "symfony/cache": "^6.4|^7.0",
- "symfony/config": "^6.4|^7.0",
- "symfony/console": "^6.4|^7.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/error-handler": "^6.4|^7.0",
- "symfony/filesystem": "^6.4|^7.0",
- "symfony/form": "^6.4|^7.0",
- "symfony/http-foundation": "^6.4|^7.0",
- "symfony/http-kernel": "^6.4|^7.0",
- "symfony/messenger": "^6.4|^7.0",
- "symfony/mime": "^6.4|^7.0",
- "symfony/property-access": "^6.4|^7.0",
- "symfony/property-info": "^6.4|^7.0",
- "symfony/translation-contracts": "^2.5|^3",
- "symfony/type-info": "^7.1",
- "symfony/uid": "^6.4|^7.0",
- "symfony/validator": "^6.4|^7.0",
- "symfony/var-dumper": "^6.4|^7.0",
- "symfony/var-exporter": "^6.4|^7.0",
- "symfony/yaml": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Serializer\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/serializer/tree/v7.1.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-08-22T09:39:57+00:00"
- },
- {
- "name": "symfony/service-contracts",
- "version": "v3.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/service-contracts.git",
- "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
- "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "psr/container": "^1.1|^2.0",
- "symfony/deprecation-contracts": "^2.5|^3"
- },
- "conflict": {
- "ext-psr": "<1.1|>=2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\Service\\": ""
- },
- "exclude-from-classmap": [
- "/Test/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Generic abstractions related to writing services",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-04-18T09:32:20+00:00"
- },
- {
- "name": "symfony/string",
- "version": "v7.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/string.git",
- "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/6cd670a6d968eaeb1c77c2e76091c45c56bc367b",
- "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-grapheme": "~1.0",
- "symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0"
- },
- "conflict": {
- "symfony/translation-contracts": "<2.5"
- },
- "require-dev": {
- "symfony/emoji": "^7.1",
- "symfony/error-handler": "^6.4|^7.0",
- "symfony/http-client": "^6.4|^7.0",
- "symfony/intl": "^6.4|^7.0",
- "symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "files": [
- "Resources/functions.php"
- ],
- "psr-4": {
- "Symfony\\Component\\String\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
- "homepage": "https://symfony.com",
- "keywords": [
- "grapheme",
- "i18n",
- "string",
- "unicode",
- "utf-8",
- "utf8"
- ],
- "support": {
- "source": "https://github.com/symfony/string/tree/v7.1.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-08-12T09:59:40+00:00"
- },
- {
- "name": "symfony/translation",
- "version": "v7.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/translation.git",
- "reference": "8d5e50c813ba2859a6dfc99a0765c550507934a1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/8d5e50c813ba2859a6dfc99a0765c550507934a1",
- "reference": "8d5e50c813ba2859a6dfc99a0765c550507934a1",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/translation-contracts": "^2.5|^3.0"
- },
- "conflict": {
- "symfony/config": "<6.4",
- "symfony/console": "<6.4",
- "symfony/dependency-injection": "<6.4",
- "symfony/http-client-contracts": "<2.5",
- "symfony/http-kernel": "<6.4",
- "symfony/service-contracts": "<2.5",
- "symfony/twig-bundle": "<6.4",
- "symfony/yaml": "<6.4"
- },
- "provide": {
- "symfony/translation-implementation": "2.3|3.0"
- },
- "require-dev": {
- "nikic/php-parser": "^4.18|^5.0",
- "psr/log": "^1|^2|^3",
- "symfony/config": "^6.4|^7.0",
- "symfony/console": "^6.4|^7.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/finder": "^6.4|^7.0",
- "symfony/http-client-contracts": "^2.5|^3.0",
- "symfony/http-kernel": "^6.4|^7.0",
- "symfony/intl": "^6.4|^7.0",
- "symfony/polyfill-intl-icu": "^1.21",
- "symfony/routing": "^6.4|^7.0",
- "symfony/service-contracts": "^2.5|^3",
- "symfony/yaml": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "files": [
- "Resources/functions.php"
- ],
- "psr-4": {
- "Symfony\\Component\\Translation\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides tools to internationalize your application",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/translation/tree/v7.1.3"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-07-26T12:41:01+00:00"
- },
- {
- "name": "symfony/translation-contracts",
- "version": "v3.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/translation-contracts.git",
- "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
- "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\Translation\\": ""
- },
- "exclude-from-classmap": [
- "/Test/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Generic abstractions related to translation",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-04-18T09:32:20+00:00"
- },
- {
- "name": "symfony/type-info",
- "version": "v7.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/type-info.git",
- "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/type-info/zipball/60b28eb733f1453287f1263ed305b96091e0d1dc",
- "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "psr/container": "^1.1|^2.0"
- },
- "conflict": {
- "phpstan/phpdoc-parser": "<1.0",
- "symfony/dependency-injection": "<6.4",
- "symfony/property-info": "<6.4"
- },
- "require-dev": {
- "phpstan/phpdoc-parser": "^1.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/property-info": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\TypeInfo\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mathias Arlaud",
- "email": "mathias.arlaud@gmail.com"
- },
- {
- "name": "Baptiste LEDUC",
- "email": "baptiste.leduc@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Extracts PHP types information.",
- "homepage": "https://symfony.com",
- "keywords": [
- "PHPStan",
- "phpdoc",
- "symfony",
- "type"
- ],
- "support": {
- "source": "https://github.com/symfony/type-info/tree/v7.1.1"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:59:31+00:00"
- },
- {
- "name": "symfony/var-dumper",
- "version": "v7.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/var-dumper.git",
- "reference": "a5fa7481b199090964d6fd5dab6294d5a870c7aa"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a5fa7481b199090964d6fd5dab6294d5a870c7aa",
- "reference": "a5fa7481b199090964d6fd5dab6294d5a870c7aa",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/polyfill-mbstring": "~1.0"
- },
- "conflict": {
- "symfony/console": "<6.4"
- },
- "require-dev": {
- "ext-iconv": "*",
- "symfony/console": "^6.4|^7.0",
- "symfony/http-kernel": "^6.4|^7.0",
- "symfony/process": "^6.4|^7.0",
- "symfony/uid": "^6.4|^7.0",
- "twig/twig": "^3.0.4"
- },
- "bin": [
- "Resources/bin/var-dump-server"
- ],
- "type": "library",
- "autoload": {
- "files": [
- "Resources/functions/dump.php"
- ],
- "psr-4": {
- "Symfony\\Component\\VarDumper\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides mechanisms for walking through any arbitrary PHP variable",
- "homepage": "https://symfony.com",
- "keywords": [
- "debug",
- "dump"
- ],
- "support": {
- "source": "https://github.com/symfony/var-dumper/tree/v7.1.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-08-30T16:12:47+00:00"
- },
- {
- "name": "voku/portable-ascii",
- "version": "2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/voku/portable-ascii.git",
- "reference": "b56450eed252f6801410d810c8e1727224ae0743"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
- "reference": "b56450eed252f6801410d810c8e1727224ae0743",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
- },
- "suggest": {
- "ext-intl": "Use Intl for transliterator_transliterate() support"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "voku\\": "src/voku/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Lars Moelleken",
- "homepage": "http://www.moelleken.org/"
- }
- ],
- "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
- "homepage": "https://github.com/voku/portable-ascii",
- "keywords": [
- "ascii",
- "clean",
- "php"
- ],
- "support": {
- "issues": "https://github.com/voku/portable-ascii/issues",
- "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
- },
- "funding": [
- {
- "url": "https://www.paypal.me/moelleken",
- "type": "custom"
- },
- {
- "url": "https://github.com/voku",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/portable-ascii",
- "type": "open_collective"
- },
- {
- "url": "https://www.patreon.com/voku",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
- "type": "tidelift"
- }
- ],
- "time": "2022-03-08T17:03:00+00:00"
- },
- {
- "name": "webonyx/graphql-php",
- "version": "v15.14.0",
- "source": {
- "type": "git",
- "url": "https://github.com/webonyx/graphql-php.git",
- "reference": "87f956498895757f0808f22c193577ed090f7f3b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/87f956498895757f0808f22c193577ed090f7f3b",
- "reference": "87f956498895757f0808f22c193577ed090f7f3b",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "ext-mbstring": "*",
- "php": "^7.4 || ^8"
- },
- "require-dev": {
- "amphp/amp": "^2.6",
- "amphp/http-server": "^2.1",
- "dms/phpunit-arraysubset-asserts": "dev-master",
- "ergebnis/composer-normalize": "^2.28",
- "friendsofphp/php-cs-fixer": "3.64.0",
- "mll-lab/php-cs-fixer-config": "^5.9.2",
- "nyholm/psr7": "^1.5",
- "phpbench/phpbench": "^1.2",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "1.12.3",
- "phpstan/phpstan-phpunit": "1.4.0",
- "phpstan/phpstan-strict-rules": "1.6.0",
- "phpunit/phpunit": "^9.5 || ^10.5.21",
- "psr/http-message": "^1 || ^2",
- "react/http": "^1.6",
- "react/promise": "^2.0 || ^3.0",
- "rector/rector": "^1.0",
- "symfony/polyfill-php81": "^1.23",
- "symfony/var-exporter": "^5 || ^6 || ^7",
- "thecodingmachine/safe": "^1.3 || ^2"
- },
- "suggest": {
- "amphp/http-server": "To leverage async resolving with webserver on AMPHP platform",
- "psr/http-message": "To use standard GraphQL server",
- "react/promise": "To leverage async resolving on React PHP platform"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "GraphQL\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A PHP port of GraphQL reference implementation",
- "homepage": "https://github.com/webonyx/graphql-php",
- "keywords": [
- "api",
- "graphql"
- ],
- "support": {
- "issues": "https://github.com/webonyx/graphql-php/issues",
- "source": "https://github.com/webonyx/graphql-php/tree/v15.14.0"
- },
- "funding": [
- {
- "url": "https://opencollective.com/webonyx-graphql-php",
- "type": "open_collective"
- }
- ],
- "time": "2024-09-10T10:36:37+00:00"
- }
- ],
- "aliases": [],
- "minimum-stability": "dev",
- "stability-flags": {
- "lastdragon-ru/lara-asp-core": 20,
- "lastdragon-ru/lara-asp-dev": 20
- },
- "prefer-stable": true,
- "prefer-lowest": false,
- "platform": [],
- "platform-dev": [],
- "plugin-api-version": "2.6.0"
-}