Skip to content
Merged
2 changes: 1 addition & 1 deletion .github/workflows/coding-standards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ on:
jobs:
coding-standards:
name: "Coding Standards"
uses: "doctrine/.github/.github/workflows/coding-standards.yml@15.0.0"
uses: "doctrine/.github/.github/workflows/coding-standards.yml@15.1.0"
2 changes: 1 addition & 1 deletion .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
jobs:
phpunit:
name: "PHPUnit"
uses: "doctrine/.github/.github/workflows/continuous-integration.yml@15.0.0"
uses: "doctrine/.github/.github/workflows/continuous-integration.yml@15.1.0"
with:
php-versions: '["8.1", "8.2", "8.3", "8.4", "8.5"]'
phpunit-options-lowest: "--do-not-fail-on-deprecation"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ on:
jobs:
documentation:
name: "Documentation"
uses: "doctrine/.github/.github/workflows/documentation.yml@15.0.0"
uses: "doctrine/.github/.github/workflows/documentation.yml@15.1.0"
2 changes: 1 addition & 1 deletion .github/workflows/release-on-milestone-closed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
jobs:
release:
name: "Git tag, release & create merge-up PR"
uses: "doctrine/.github/.github/workflows/release-on-milestone-closed.yml@15.0.0"
uses: "doctrine/.github/.github/workflows/release-on-milestone-closed.yml@15.1.0"
secrets:
GIT_AUTHOR_EMAIL: ${{ secrets.GIT_AUTHOR_EMAIL }}
GIT_AUTHOR_NAME: ${{ secrets.GIT_AUTHOR_NAME }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ on:
jobs:
static-analysis:
name: "Static Analysis"
uses: "doctrine/.github/.github/workflows/phpstan.yml@15.0.0"
uses: "doctrine/.github/.github/workflows/phpstan.yml@15.1.0"
2 changes: 1 addition & 1 deletion src/ManagerRegistry.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Doctrine\Persistence;

/**
* Contract covering object managers for a Doctrine persistence layer ManagerRegistry class to implement.
* Gives access to the object managers and connections of an application, by name or by class.
*/
interface ManagerRegistry extends ConnectionRegistry
{
Expand Down
9 changes: 2 additions & 7 deletions src/Mapping/Driver/SymfonyFileLocator.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,14 @@
use RuntimeException;

use function array_keys;
use function assert;
use function basename;
use function is_dir;
use function is_file;
use function is_int;
use function realpath;
use function sprintf;
use function str_replace;
use function str_starts_with;
use function strlen;
use function strrpos;
use function strtr;
use function substr;

Expand Down Expand Up @@ -222,12 +220,9 @@ public function findMappingFile(string $className): string
}
}

$pos = strrpos($className, '\\');
assert(is_int($pos));

throw MappingException::mappingFileNotFound(
$className,
substr($className, $pos + 1) . $this->fileExtension,
basename(str_replace('\\', '/', $className)) . $this->fileExtension,
);
}

Expand Down
9 changes: 9 additions & 0 deletions tests/Mapping/SymfonyFileLocatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,15 @@ public function testFindMappingFileNotFound(): void
$locator->findMappingFile('Foo\\stdClass2');
}

public function testFindMappingFileNotFoundForClassInRootNamespace(): void
{
$locator = new SymfonyFileLocator([], '.yml');

$this->expectException(MappingException::class);
$this->expectExceptionMessage("No mapping file found named 'DateTime.yml' for class 'DateTime'.");
$locator->findMappingFile('DateTime');
}

public function testFindMappingFileLeastSpecificNamespaceFirst(): void
{
// Low -> High
Expand Down