1414use  LogicException ;
1515use  mysqli ;
1616use  PDO ;
17- use  PgSql \Connection  as  NativePgsqlConnection ;
1817use  PHPStan \Platform \MatrixEntity \TestEntity ;
1918use  PHPStan \Testing \PHPStanTestCase ;
2019use  PHPStan \Type \ConstantTypeHelper ;
2827use  function  array_combine ;
2928use  function  array_keys ;
3029use  function  function_exists ;
31- use  function  get_class ;
3230use  function  get_debug_type ;
3331use  function  getenv ;
3432use  function  gettype ;
33+ use  function  is_a ;
3534use  function  is_resource ;
3635use  function  method_exists ;
3736use  function  reset ;
@@ -374,14 +373,14 @@ private function setupAttributes($nativeConnection, array $attributes): void
374373				}
375374			}
376375
377- 		} elseif  ($ nativeConnectioninstanceof  NativePgsqlConnection ) {
376+ 		} elseif  (is_a ( $ nativeConnection,  ' PgSql\Connection ' ,  true ) ) {
378377			if  ($ attributes
379- 				throw  new  LogicException ('Cannot set attributes for  '   . NativePgsqlConnection::class .  '  driver '
378+ 				throw  new  LogicException ('Cannot set attributes for PgSql\Connection  driver ' );
380379			}
381380
382381		} elseif  ($ nativeConnectioninstanceof  SQLite3) {
383382			if  ($ attributes
384- 				throw  new  LogicException ('Cannot set attributes for  '  . NativePgsqlConnection ::class . ' driver ' );
383+ 				throw  new  LogicException ('Cannot set attributes for  '  . SQLite3 ::class . ' driver ' );
385384			}
386385
387386		} elseif  (is_resource ($ nativeConnection// e.g. `resource (pgsql link)` on PHP < 8.1 with pgsql driver 
@@ -403,12 +402,14 @@ private function getNativeConnection(Connection $connection)
403402			return  $ connectiongetNativeConnection ();
404403		}
405404
406- 		if  ($ connectiongetWrappedConnection () instanceof  PDO ) {
407- 			return  $ connectiongetWrappedConnection ();
408- 		}
405+ 		if  (method_exists ($ connection'getWrappedConnection ' )) {
406+ 			if  ($ connectiongetWrappedConnection () instanceof  PDO ) {
407+ 				return  $ connectiongetWrappedConnection ();
408+ 			}
409409
410- 		if  (get_class ($ connectiongetWrappedConnection ()) === 'Doctrine\DBAL\Driver\Mysqli\MysqliConnection '  && method_exists ($ connectiongetWrappedConnection (), 'getWrappedResourceHandle ' )) {
411- 			return  $ connectiongetWrappedConnection ()->getWrappedResourceHandle ();
410+ 			if  (method_exists ($ connectiongetWrappedConnection (), 'getWrappedResourceHandle ' )) {
411+ 				return  $ connectiongetWrappedConnection ()->getWrappedResourceHandle ();
412+ 			}
412413		}
413414
414415		throw  new  LogicException ('Unable to get native connection ' );
0 commit comments