diff --git a/camel/BaseDTOCollection.php b/camel/BaseDTOCollection.php index 046f7316..ba2d1762 100644 --- a/camel/BaseDTOCollection.php +++ b/camel/BaseDTOCollection.php @@ -2,9 +2,7 @@ namespace Knuckles\Camel; -use ArrayIterator; use Illuminate\Contracts\Support\Arrayable; -use Illuminate\Support\Arr; use Illuminate\Support\Collection; use Spatie\DataTransferObject\DataTransferObjectCollection; @@ -49,4 +47,4 @@ public function toArray(): array $this->items ); } -} \ No newline at end of file +} diff --git a/phpstan.neon b/phpstan.neon index 5eae6a01..e1e971ec 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -17,3 +17,4 @@ parameters: - '/Instantiated class League\\Flysystem\\Adapter\\Local not found./' - '/Parameter #1 \$adapter of class League\\Flysystem\\Filesystem constructor expects League\\Flysystem\\FilesystemAdapter, League\\Flysystem\\Adapter\\Local given./' - '/Call to method getPathPrefix\(\) on an unknown class League\\Flysystem\\Adapter\\Local/' + - '/Access to an undefined property Knuckles\\Scribe\\Extracting\\Shared\\ResponseFieldTools::\$config./' diff --git a/src/Commands/Upgrade.php b/src/Commands/Upgrade.php index f2b37a7a..aabb126f 100644 --- a/src/Commands/Upgrade.php +++ b/src/Commands/Upgrade.php @@ -30,7 +30,7 @@ public function handle(): void $isMajorUpgrade = array_key_exists("default_group", $oldConfig) || array_key_exists("faker_seed", $oldConfig); - $isMajorUpgrade && $this->info("Welcome to the Scribe v3 to v4 upgrader."); + if ($isMajorUpgrade) $this->info("Welcome to the Scribe v3 to v4 upgrader."); $this->line("Checking for config file changes..."); $upgrader = Upgrader::ofConfigFile("config/$configName.php", __DIR__ . '/../../config/scribe.php') diff --git a/src/Exceptions/DatabaseTransactionsNotSupported.php b/src/Exceptions/DatabaseTransactionsNotSupported.php index ae851930..59ccf20f 100644 --- a/src/Exceptions/DatabaseTransactionsNotSupported.php +++ b/src/Exceptions/DatabaseTransactionsNotSupported.php @@ -2,7 +2,6 @@ namespace Knuckles\Scribe\Exceptions; -use Knuckles\Scribe\Exceptions\ScribeException; use RuntimeException; class DatabaseTransactionsNotSupported extends RuntimeException implements ScribeException diff --git a/src/Extracting/DatabaseTransactionHelpers.php b/src/Extracting/DatabaseTransactionHelpers.php index dde0ff08..044c133c 100644 --- a/src/Extracting/DatabaseTransactionHelpers.php +++ b/src/Extracting/DatabaseTransactionHelpers.php @@ -4,7 +4,6 @@ use Knuckles\Scribe\Exceptions\DatabaseTransactionsNotSupported; use Knuckles\Scribe\Tools\DocumentationConfig; -use Knuckles\Scribe\Tools\Globals; use PDOException; trait DatabaseTransactionHelpers diff --git a/src/Extracting/Extractor.php b/src/Extracting/Extractor.php index c438c659..07d6eb8c 100644 --- a/src/Extracting/Extractor.php +++ b/src/Extracting/Extractor.php @@ -53,7 +53,7 @@ public function processRoute(Route $route, array $routeRules = []): ExtractedEnd $endpointData = ExtractedEndpointData::fromRoute($route); $inheritedDocsOverrides = []; - if ($endpointData?->controller->hasMethod('inheritedDocsOverrides')) { + if ($endpointData->controller->hasMethod('inheritedDocsOverrides')) { $inheritedDocsOverrides = call_user_func([$endpointData->controller->getName(), 'inheritedDocsOverrides']); $inheritedDocsOverrides = $inheritedDocsOverrides[$endpointData->method->getName()] ?? []; } diff --git a/src/Extracting/InstantiatesExampleModels.php b/src/Extracting/InstantiatesExampleModels.php index 7543a751..de7db90a 100644 --- a/src/Extracting/InstantiatesExampleModels.php +++ b/src/Extracting/InstantiatesExampleModels.php @@ -2,7 +2,6 @@ namespace Knuckles\Scribe\Extracting; -use Illuminate\Database\Eloquent\Model; use Knuckles\Scribe\Tools\ConsoleOutputUtils as c; use Knuckles\Scribe\Tools\ErrorHandlingUtils as e; use Knuckles\Scribe\Tools\Utils; @@ -11,10 +10,11 @@ trait InstantiatesExampleModels { /** - * @param string $type + * @param class-string $type + * @param string[] $factoryStates + * @param string[] $relations * - * @param array $relations - * @param array $factoryStates + * @return \Illuminate\Database\Eloquent\Model|object */ protected function instantiateExampleModel(string $type, array $factoryStates = [], array $relations = []) { @@ -39,18 +39,36 @@ protected function instantiateExampleModel(string $type, array $factoryStates = return new $type; } + /** + * @param class-string $type + * @param string[] $factoryStates + * + * @return \Illuminate\Database\Eloquent\Model|null + */ protected function getExampleModelFromFactoryCreate(string $type, array $factoryStates = [], array $relations = []) { $factory = Utils::getModelFactory($type, $factoryStates, $relations); return $factory->create()->load($relations); } + /** + * @param class-string $type + * @param string[] $factoryStates + * + * @return \Illuminate\Database\Eloquent\Model|null + */ protected function getExampleModelFromFactoryMake(string $type, array $factoryStates = [], array $relations = []) { $factory = Utils::getModelFactory($type, $factoryStates, $relations); return $factory->make(); } + /** + * @param class-string $type + * @param string[] $relations + * + * @return \Illuminate\Database\Eloquent\Model|null + */ protected function getExampleModelFromDatabaseFirst(string $type, array $relations = []) { return $type::with($relations)->first(); diff --git a/src/Extracting/Shared/TransformerResponseTools.php b/src/Extracting/Shared/TransformerResponseTools.php index 5a52ed75..72c21385 100644 --- a/src/Extracting/Shared/TransformerResponseTools.php +++ b/src/Extracting/Shared/TransformerResponseTools.php @@ -2,17 +2,7 @@ namespace Knuckles\Scribe\Extracting\Shared; -use Exception; -use Illuminate\Http\JsonResponse; -use Illuminate\Http\Request; -use Illuminate\Http\Resources\Json\JsonResource; -use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Pagination\LengthAwarePaginator; -use Illuminate\Pagination\Paginator; -use Knuckles\Camel\Extraction\ExtractedEndpointData; -use Knuckles\Scribe\Tools\ConsoleOutputUtils as c; -use Knuckles\Scribe\Tools\ErrorHandlingUtils as e; -use Knuckles\Scribe\Tools\Utils; use League\Fractal\Manager; use League\Fractal\Resource\Collection; use League\Fractal\Resource\Item; diff --git a/src/Extracting/Strategies/GetFieldsFromTagStrategy.php b/src/Extracting/Strategies/GetFieldsFromTagStrategy.php index 8da64533..c126a4cc 100644 --- a/src/Extracting/Strategies/GetFieldsFromTagStrategy.php +++ b/src/Extracting/Strategies/GetFieldsFromTagStrategy.php @@ -3,7 +3,6 @@ namespace Knuckles\Scribe\Extracting\Strategies; use Knuckles\Scribe\Extracting\ParamHelpers; -use Mpociot\Reflection\DocBlock\Tag; abstract class GetFieldsFromTagStrategy extends TagStrategyWithFormRequestFallback { diff --git a/src/Extracting/Strategies/Metadata/GetFromMetadataAttributes.php b/src/Extracting/Strategies/Metadata/GetFromMetadataAttributes.php index 37715495..6a39f169 100644 --- a/src/Extracting/Strategies/Metadata/GetFromMetadataAttributes.php +++ b/src/Extracting/Strategies/Metadata/GetFromMetadataAttributes.php @@ -6,17 +6,9 @@ use Knuckles\Scribe\Attributes\Authenticated; use Knuckles\Scribe\Attributes\Endpoint; use Knuckles\Scribe\Attributes\Group; -use Knuckles\Scribe\Attributes\Response; -use Knuckles\Scribe\Attributes\ResponseFromApiResource; -use Knuckles\Scribe\Attributes\ResponseFromFile; -use Knuckles\Scribe\Attributes\ResponseFromTransformer; use Knuckles\Scribe\Attributes\Subgroup; use Knuckles\Scribe\Attributes\Unauthenticated; -use Knuckles\Scribe\Extracting\DatabaseTransactionHelpers; -use Knuckles\Scribe\Extracting\InstantiatesExampleModels; use Knuckles\Scribe\Extracting\ParamHelpers; -use Knuckles\Scribe\Extracting\Shared\ApiResourceResponseTools; -use Knuckles\Scribe\Extracting\Shared\TransformerResponseTools; use Knuckles\Scribe\Extracting\Strategies\PhpAttributeStrategy; /** diff --git a/src/Extracting/Strategies/PhpAttributeStrategy.php b/src/Extracting/Strategies/PhpAttributeStrategy.php index 254c3d08..450f0e17 100644 --- a/src/Extracting/Strategies/PhpAttributeStrategy.php +++ b/src/Extracting/Strategies/PhpAttributeStrategy.php @@ -16,7 +16,7 @@ abstract class PhpAttributeStrategy extends Strategy use ParamHelpers; /** - * @var array> + * @var string[] */ protected array $attributeNames; diff --git a/src/Extracting/Strategies/ResponseFields/GetFromResponseFieldAttribute.php b/src/Extracting/Strategies/ResponseFields/GetFromResponseFieldAttribute.php index 8f5507c2..3eef5543 100644 --- a/src/Extracting/Strategies/ResponseFields/GetFromResponseFieldAttribute.php +++ b/src/Extracting/Strategies/ResponseFields/GetFromResponseFieldAttribute.php @@ -3,7 +3,6 @@ namespace Knuckles\Scribe\Extracting\Strategies\ResponseFields; use Knuckles\Camel\Extraction\ExtractedEndpointData; -use Knuckles\Camel\Extraction\Response; use Knuckles\Scribe\Attributes\ResponseField; use Knuckles\Scribe\Extracting\Shared\ResponseFieldTools; use Knuckles\Scribe\Extracting\Strategies\PhpAttributeStrategy; diff --git a/src/Extracting/Strategies/Responses/UseResponseAttributes.php b/src/Extracting/Strategies/Responses/UseResponseAttributes.php index 09d16d6e..b63561f6 100644 --- a/src/Extracting/Strategies/Responses/UseResponseAttributes.php +++ b/src/Extracting/Strategies/Responses/UseResponseAttributes.php @@ -35,6 +35,7 @@ protected function extractFromAttributes( { $responses = []; foreach ([...$attributesOnController, ...$attributesOnMethod] as $attributeInstance) { + /* @phpstan-ignore-next-line */ $responses[] = match (get_class($attributeInstance)) { Response::class => $attributeInstance->toArray(), ResponseFromFile::class => $attributeInstance->toArray(), diff --git a/src/Extracting/Strategies/TagStrategyWithFormRequestFallback.php b/src/Extracting/Strategies/TagStrategyWithFormRequestFallback.php index eb2c0757..36f74663 100644 --- a/src/Extracting/Strategies/TagStrategyWithFormRequestFallback.php +++ b/src/Extracting/Strategies/TagStrategyWithFormRequestFallback.php @@ -36,5 +36,11 @@ public function getParametersFromDocBlockInFormRequestOrMethod(Route $route, Ref return $this->getFromTags($methodDocBlock->getTags(), $classTags); } + /** + * @param \Mpociot\Reflection\DocBlock\Tag[] $tagsOnMethod + * @param \Mpociot\Reflection\DocBlock\Tag[] $tagsOnClass + * + * @return array + */ abstract public function getFromTags(array $tagsOnMethod, array $tagsOnClass = []): array; } diff --git a/src/GroupedEndpoints/GroupedEndpointsFactory.php b/src/GroupedEndpoints/GroupedEndpointsFactory.php index f577338f..5a51bb74 100644 --- a/src/GroupedEndpoints/GroupedEndpointsFactory.php +++ b/src/GroupedEndpoints/GroupedEndpointsFactory.php @@ -2,7 +2,6 @@ namespace Knuckles\Scribe\GroupedEndpoints; -use Knuckles\Camel\Camel; use Knuckles\Scribe\Commands\GenerateDocumentation; use Knuckles\Scribe\Matching\RouteMatcherInterface; diff --git a/src/GroupedEndpoints/GroupedEndpointsFromCamelDir.php b/src/GroupedEndpoints/GroupedEndpointsFromCamelDir.php index cb0fcc7e..ad80a69f 100644 --- a/src/GroupedEndpoints/GroupedEndpointsFromCamelDir.php +++ b/src/GroupedEndpoints/GroupedEndpointsFromCamelDir.php @@ -3,7 +3,6 @@ namespace Knuckles\Scribe\GroupedEndpoints; use Knuckles\Camel\Camel; -use Knuckles\Scribe\Commands\GenerateDocumentation; class GroupedEndpointsFromCamelDir implements GroupedEndpointsContract { diff --git a/src/Matching/MatchedRoute.php b/src/Matching/MatchedRoute.php index 6b1d5d4f..6ecef244 100644 --- a/src/Matching/MatchedRoute.php +++ b/src/Matching/MatchedRoute.php @@ -31,7 +31,7 @@ public function offsetExists($offset): bool return is_callable([$this, 'get' . ucfirst($offset)]); } - public function offsetGet($offset) + public function offsetGet($offset): mixed { return call_user_func([$this, 'get' . ucfirst($offset)]); } diff --git a/tests/Fixtures/TestController.php b/tests/Fixtures/TestController.php index 9a02157d..ca027005 100644 --- a/tests/Fixtures/TestController.php +++ b/tests/Fixtures/TestController.php @@ -4,8 +4,6 @@ use Illuminate\Http\Request; use Illuminate\Routing\Controller; -use Illuminate\Validation\ValidationException; -use Knuckles\Scribe\Tests\Unit\ExtractorTest; use Knuckles\Scribe\Tools\Utils; /** diff --git a/tests/Strategies/Responses/UseResponseFileTagTest.php b/tests/Strategies/Responses/UseResponseFileTagTest.php index 3b550d6a..badb1ec9 100644 --- a/tests/Strategies/Responses/UseResponseFileTagTest.php +++ b/tests/Strategies/Responses/UseResponseFileTagTest.php @@ -2,9 +2,7 @@ namespace Knuckles\Scribe\Tests\Strategies\Responses; -use Illuminate\Support\Facades\Route as RouteFacade; use Knuckles\Scribe\Extracting\Strategies\Responses\UseResponseFileTag; -use Knuckles\Scribe\Tests\Fixtures\TestController; use Knuckles\Scribe\Tools\DocumentationConfig; use Mpociot\Reflection\DocBlock\Tag; use DMS\PHPUnitExtensions\ArraySubset\ArraySubsetAsserts; diff --git a/tests/Strategies/Responses/UseTransformerTagsTest.php b/tests/Strategies/Responses/UseTransformerTagsTest.php index 4c6da233..6fca8c00 100644 --- a/tests/Strategies/Responses/UseTransformerTagsTest.php +++ b/tests/Strategies/Responses/UseTransformerTagsTest.php @@ -3,7 +3,6 @@ namespace Knuckles\Scribe\Tests\Strategies\Responses; use Knuckles\Scribe\Extracting\Strategies\Responses\UseTransformerTags; -use Knuckles\Scribe\ScribeServiceProvider; use Knuckles\Scribe\Tests\BaseLaravelTest; use Knuckles\Scribe\Tests\Fixtures\TestUser; use Knuckles\Scribe\Tools\DocumentationConfig; diff --git a/tests/Unit/ExtractorTest.php b/tests/Unit/ExtractorTest.php index 76b14137..10e57efa 100644 --- a/tests/Unit/ExtractorTest.php +++ b/tests/Unit/ExtractorTest.php @@ -6,7 +6,6 @@ use Illuminate\Routing\Route; use Knuckles\Camel\Extraction\ExtractedEndpointData; use Knuckles\Camel\Extraction\Parameter; -use Knuckles\Scribe\Attributes\UrlParam; use Knuckles\Scribe\Extracting\Extractor; use Knuckles\Scribe\Tests\Fixtures\TestController; use Knuckles\Scribe\Tools\DocumentationConfig;