Skip to content

Commit

Permalink
Feat: support of custom annotation loader
Browse files Browse the repository at this point in the history
  • Loading branch information
Petr Besir Horáček committed Feb 1, 2024
1 parent cb464d4 commit cb675d3
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions src/Core/DI/Plugin/CoreSchemaPlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ protected function getConfigSchema(): Schema
'loaders' => Expect::structure([
'annotations' => Expect::structure([
'enable' => Expect::bool(true),
'loader' => Expect::string(),
]),
'neon' => Expect::structure([
'enable' => Expect::bool(false),
Expand Down Expand Up @@ -112,10 +113,16 @@ protected function loadSchema(SchemaBuilder $builder): SchemaBuilder
{
$loaders = $this->config->loaders;

//TODO - resolve limitation - Controller defined by one of loaders cannot be modified by other loaders

if ($loaders->annotations->enable) {
$loader = new DoctrineAnnotationLoader($this->getContainerBuilder());
if ($loaders->annotations->loader) {

Check failure on line 117 in src/Core/DI/Plugin/CoreSchemaPlugin.php

View workflow job for this annotation

GitHub Actions / Codesniffer / Codesniffer (8.2)

Expected 1 line after "if", found 0.
if (!class_exists($loaders->annotations->loader)) {
throw new \RuntimeException(sprintf('Annotation loader class %s does not exist', $loaders->annotations->loader));
}

$loader = new $loaders->annotations->loader($this->getContainerBuilder());
} else {
$loader = new DoctrineAnnotationLoader($this->getContainerBuilder());
}
$builder = $loader->load($builder);

Check failure on line 126 in src/Core/DI/Plugin/CoreSchemaPlugin.php

View workflow job for this annotation

GitHub Actions / Phpstan / Phpstan (8.2)

Call to an undefined method object::load().
}

Expand Down

0 comments on commit cb675d3

Please sign in to comment.