summaryrefslogtreecommitdiff
path: root/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/PHPDriver.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/doctrine/persistence/src/Persistence/Mapping/Driver/PHPDriver.php')
-rw-r--r--vendor/doctrine/persistence/src/Persistence/Mapping/Driver/PHPDriver.php49
1 files changed, 49 insertions, 0 deletions
diff --git a/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/PHPDriver.php b/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/PHPDriver.php
new file mode 100644
index 0000000..1c1ab9c
--- /dev/null
+++ b/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/PHPDriver.php
@@ -0,0 +1,49 @@
1<?php
2
3declare(strict_types=1);
4
5namespace Doctrine\Persistence\Mapping\Driver;
6
7use Doctrine\Persistence\Mapping\ClassMetadata;
8
9/**
10 * The PHPDriver includes php files which just populate ClassMetadataInfo
11 * instances with plain PHP code.
12 *
13 * @template-extends FileDriver<ClassMetadata<object>>
14 */
15class PHPDriver extends FileDriver
16{
17 /**
18 * @var ClassMetadata
19 * @psalm-var ClassMetadata<object>
20 */
21 protected $metadata;
22
23 /** @param string|array<int, string>|FileLocator $locator */
24 public function __construct($locator)
25 {
26 parent::__construct($locator, '.php');
27 }
28
29 /**
30 * {@inheritDoc}
31 */
32 public function loadMetadataForClass(string $className, ClassMetadata $metadata)
33 {
34 $this->metadata = $metadata;
35
36 $this->loadMappingFile($this->locator->findMappingFile($className));
37 }
38
39 /**
40 * {@inheritDoc}
41 */
42 protected function loadMappingFile(string $file)
43 {
44 $metadata = $this->metadata;
45 include $file;
46
47 return [$metadata->getName() => $metadata];
48 }
49}