Skip to content

Commit

Permalink
fix: Cannot declare class Shield\Config\Auth, because the name is alr…
Browse files Browse the repository at this point in the history
…eady in use

See codeigniter4/shield#1091
  • Loading branch information
kenjis committed Apr 10, 2024
1 parent 2c524fd commit 5e6979b
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion system/Autoloader/FileLocator.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@ class FileLocator implements FileLocatorInterface
*/
protected $autoloader;

/**
* List of classnames that did not exist.
*
* @var list<class-string>
*/
private array $invalidClassnames = [];

public function __construct(Autoloader $autoloader)
{
$this->autoloader = $autoloader;
Expand Down Expand Up @@ -288,14 +295,20 @@ public function findQualifiedNameFromPath(string $path)
),
'\\'
);

// Remove the file extension (.php)
$className = mb_substr($className, 0, -4);

if (in_array($className, $this->invalidClassnames, true)) {
continue;
}

// Check if this exists
if (class_exists($className)) {
return $className;
}

// If the class does not exist, it is an invalid classname.
$this->invalidClassnames[] = $className;
}
}

Expand Down

0 comments on commit 5e6979b

Please sign in to comment.