88use  Doctrine \Persistence \Mapping \MappingException ;
99
1010use  function  array_keys ;
11+ use  function  rtrim ;
1112use  function  spl_object_id ;
12- use  function  str_starts_with ;
13+ use  function  strpos ;
1314
1415/** 
1516 * The DriverChain allows you to add multiple other mapping drivers for 
@@ -56,7 +57,7 @@ public function getDrivers(): array
5657    public  function  loadMetadataForClass (string  $ classNameClassMetadata $ metadatavoid 
5758    {
5859        foreach  ($ this drivers  as  $ namespace$ driver
59-             if  (str_starts_with ($ className$ namespace
60+             if  ($ this -> isInNamespace ($ className$ namespace
6061                $ driverloadMetadataForClass ($ className$ metadata
6162
6263                return ;
@@ -88,7 +89,7 @@ public function getAllClassNames(): array
8889            }
8990
9091            foreach  ($ driverClasses$ oidas  $ className
91-                 if  (! str_starts_with ($ className$ namespace
92+                 if  (! $ this -> isInNamespace ($ className$ namespace
9293                    continue ;
9394                }
9495
@@ -108,7 +109,7 @@ public function getAllClassNames(): array
108109    public  function  isTransient (string  $ classNamebool 
109110    {
110111        foreach  ($ this drivers  as  $ namespace$ driver
111-             if  (str_starts_with ($ className$ namespace
112+             if  ($ this -> isInNamespace ($ className$ namespace
112113                return  $ driverisTransient ($ className
113114            }
114115        }
@@ -119,4 +120,11 @@ public function isTransient(string $className): bool
119120
120121        return  true ;
121122    }
123+ 
124+     private  function  isInNamespace (string  $ classNamestring  $ namespacebool 
125+     {
126+         $ namespacertrim ($ namespace'\\' ) . '\\' ;
127+ 
128+         return  strpos ($ className$ namespace0 ;
129+     }
122130}
0 commit comments