21
21
use Nettrine \ORM \ManagerRegistry ;
22
22
use Nettrine \ORM \Mapping \ContainerEntityListenerResolver ;
23
23
use stdClass ;
24
+ use Tracy \Debugger ;
24
25
25
26
/**
26
27
* @property-read stdClass $config
@@ -30,6 +31,13 @@ final class OrmExtension extends AbstractExtension
30
31
31
32
public const MAPPING_DRIVER_TAG = 'nettrine.orm.mapping.driver ' ;
32
33
34
+ public function __construct (private ?bool $ debugMode = null )
35
+ {
36
+ if ($ this ->debugMode === null ) {
37
+ $ this ->debugMode = class_exists (Debugger::class) && Debugger::$ productionMode === false ;
38
+ }
39
+ }
40
+
33
41
public function getConfigSchema (): Schema
34
42
{
35
43
$ parameters = $ this ->getContainerBuilder ()->parameters ;
@@ -40,7 +48,7 @@ public function getConfigSchema(): Schema
40
48
'configurationClass ' => Expect::string (Configuration::class),
41
49
'configuration ' => Expect::structure ([
42
50
'proxyDir ' => Expect::string ($ proxyDir )->nullable (),
43
- 'autoGenerateProxyClasses ' => Expect::anyOf (Expect::int (), Expect::bool (), Expect::type (Statement::class))->default (AbstractProxyFactory:: AUTOGENERATE_FILE_NOT_EXISTS ),
51
+ 'autoGenerateProxyClasses ' => Expect::anyOf (Expect::int (), Expect::bool (), Expect::type (Statement::class))->default (true ),
44
52
'proxyNamespace ' => Expect::string ('Nettrine\Proxy ' )->nullable (),
45
53
'metadataDriverImpl ' => Expect::string (),
46
54
'entityNamespaces ' => Expect::array (),
@@ -94,8 +102,9 @@ public function loadDoctrineConfiguration(): void
94
102
}
95
103
96
104
if (is_bool ($ config ->autoGenerateProxyClasses )) {
105
+ $ defaultStrategy = $ this ->debugMode === true ? AbstractProxyFactory::AUTOGENERATE_FILE_NOT_EXISTS_OR_CHANGED : AbstractProxyFactory::AUTOGENERATE_FILE_NOT_EXISTS ;
97
106
$ configuration ->addSetup ('setAutoGenerateProxyClasses ' , [
98
- $ config ->autoGenerateProxyClasses === true ? AbstractProxyFactory:: AUTOGENERATE_FILE_NOT_EXISTS : AbstractProxyFactory::AUTOGENERATE_NEVER ,
107
+ $ config ->autoGenerateProxyClasses === true ? $ defaultStrategy : AbstractProxyFactory::AUTOGENERATE_NEVER ,
99
108
]);
100
109
} elseif (is_int ($ config ->autoGenerateProxyClasses )) {
101
110
$ configuration ->addSetup ('setAutoGenerateProxyClasses ' , [$ config ->autoGenerateProxyClasses ]);
0 commit comments