refactor: fix all 105 PHPStan 2 strict type findings across core and modules
Resolve all non-false-positive PHPStan 2 findings, reducing the baseline from 486 to 382 entries (only unused-public false positives remain). Categories fixed: - Remove 39 redundant type checks (is_string, is_array, is_object, method_exists) - Remove 12 no-op array_values() on already-sequential lists - Simplify 13 null-coalesce on guaranteed offsets - Remove 8 always-true instanceof checks - Replace 12 redundant test assertions (assertTrue(true) → addToAssertionCount) - Simplify 6 unnecessary nullsafe operators (?-> → ->) - Fix 6 always-true !== '' comparisons - Fix remaining: unset.offset, return.unusedType, staticMethod narrowing 53 files changed across core/, modules/, pages/, and tests/. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -487,11 +487,6 @@ function appBuildLayoutNavContext(array $layoutAuth, array $session, array $quer
|
||||
$provider = \MintyPHP\App\Module\ModuleClassResolver::resolve($container, $providerClass);
|
||||
if ($provider instanceof \MintyPHP\App\Module\Contracts\LayoutContextProvider) {
|
||||
$providerData = $provider->provide($session, $container);
|
||||
if (!is_array($providerData)) {
|
||||
throw new \RuntimeException(
|
||||
"Layout context provider '{$providerClass}' must return an array."
|
||||
);
|
||||
}
|
||||
$layoutNav = appMergeLayoutNavProviderData($layoutNav, $providerData, $providerClass);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,9 +206,6 @@ function gridSplitToolbarSchema(array $toolbarSchema, array $searchKeys = []): a
|
||||
$search = [];
|
||||
$drawer = [];
|
||||
foreach ($toolbarSchema as $field) {
|
||||
if (!is_array($field)) {
|
||||
continue;
|
||||
}
|
||||
$key = trim((string) ($field['key'] ?? ''));
|
||||
$isSearch = (bool) ($field['search'] ?? false) || ($key !== '' && isset($searchKeyMap[$key]));
|
||||
if ($isSearch) {
|
||||
@@ -231,9 +228,6 @@ function gridSchemaByKey(array $toolbarSchema): array
|
||||
{
|
||||
$schemaByKey = [];
|
||||
foreach ($toolbarSchema as $field) {
|
||||
if (!is_array($field)) {
|
||||
continue;
|
||||
}
|
||||
$key = trim((string) ($field['key'] ?? ''));
|
||||
if ($key === '') {
|
||||
continue;
|
||||
@@ -255,9 +249,6 @@ function gridBuildToolbarFilterState(array $toolbarSchema, array $filterState):
|
||||
{
|
||||
$state = [];
|
||||
foreach ($toolbarSchema as $field) {
|
||||
if (!is_array($field)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$key = trim((string) ($field['key'] ?? ''));
|
||||
if ($key === '') {
|
||||
@@ -347,9 +338,6 @@ function gridOptionMapFromItems(array $items): array
|
||||
{
|
||||
$map = [];
|
||||
foreach ($items as $item) {
|
||||
if (!is_array($item)) {
|
||||
continue;
|
||||
}
|
||||
$id = trim((string) ($item['id'] ?? ''));
|
||||
if ($id === '') {
|
||||
continue;
|
||||
@@ -370,9 +358,6 @@ function gridOptionMapFromAllowed(array $field): array
|
||||
{
|
||||
$map = [];
|
||||
foreach ((array) ($field['allowed'] ?? []) as $item) {
|
||||
if (!is_array($item)) {
|
||||
continue;
|
||||
}
|
||||
$id = trim((string) ($item['id'] ?? ''));
|
||||
if ($id === '') {
|
||||
continue;
|
||||
|
||||
@@ -101,9 +101,6 @@ function requestNormalizeSafeInternalTarget(string $target, int $maxDepth = 5):
|
||||
|
||||
$queryParams = [];
|
||||
parse_str((string) ($safeParts['query'] ?? ''), $queryParams);
|
||||
if (!is_array($queryParams)) {
|
||||
$queryParams = [];
|
||||
}
|
||||
$nestedReturnTarget = requestExtractNestedReturnValue($queryParams['return'] ?? null);
|
||||
unset($queryParams['return']);
|
||||
$query = http_build_query($queryParams);
|
||||
@@ -185,9 +182,6 @@ function requestPathWithReturnTarget(string $path, string $returnTarget = ''): s
|
||||
}
|
||||
$queryParams = [];
|
||||
parse_str((string) ($parts['query'] ?? ''), $queryParams);
|
||||
if (!is_array($queryParams)) {
|
||||
$queryParams = [];
|
||||
}
|
||||
unset($queryParams['return']);
|
||||
$queryParams['return'] = $normalizedReturnTarget;
|
||||
$query = http_build_query($queryParams);
|
||||
|
||||
@@ -146,9 +146,6 @@ function selectFilter(
|
||||
function renderGridFilterToolbar(array $schema, array $active = [], array $optionSets = []): void
|
||||
{
|
||||
foreach ($schema as $field) {
|
||||
if (!is_array($field)) {
|
||||
continue;
|
||||
}
|
||||
if (($field['render'] ?? true) === false) {
|
||||
continue;
|
||||
}
|
||||
@@ -463,10 +460,10 @@ function appStylePathsForGroups(array $groupNames): array
|
||||
$registry = app(\MintyPHP\App\Module\ModuleRegistry::class);
|
||||
if ($registry instanceof \MintyPHP\App\Module\ModuleRegistry) {
|
||||
foreach ($registry->getAssetGroups() as $groupName => $paths) {
|
||||
if (!is_string($groupName) || $groupName === '') {
|
||||
if ($groupName === '') {
|
||||
continue;
|
||||
}
|
||||
if (!is_array($paths) || isset($groups[$groupName])) {
|
||||
if (isset($groups[$groupName])) {
|
||||
continue;
|
||||
}
|
||||
$groups[$groupName] = $paths;
|
||||
|
||||
Reference in New Issue
Block a user