| @@ 158-170 (lines=13) @@ | ||
| 155 | private function validateNoRollbackExceptions($annotationNoRollbackExceptions) |
|
| 156 | { |
|
| 157 | $noRollbackExceptions = []; |
|
| 158 | foreach ($annotationNoRollbackExceptions as $exceptionClassName) { |
|
| 159 | try { |
|
| 160 | $exceptionClass = new ReflectionClass($exceptionClassName); |
|
| 161 | } catch (ReflectionException $e) { |
|
| 162 | throw new AnnotationException('Class not found: \'' . $exceptionClassName . '\'', null, $e); |
|
| 163 | } |
|
| 164 | ||
| 165 | if (($exceptionClassName !== Exception::class) && !$exceptionClass->isSubclassOf(Exception::class)) { |
|
| 166 | throw new AnnotationException('Not an exception: \'' . $exceptionClassName . '\''); |
|
| 167 | } |
|
| 168 | ||
| 169 | $noRollbackExceptions[] = $exceptionClassName; |
|
| 170 | } |
|
| 171 | return $noRollbackExceptions; |
|
| 172 | } |
|
| 173 | } |
|
| @@ 74-84 (lines=11) @@ | ||
| 71 | $container->setParameter(Configuration::ROOT_NODE_NAME . '.' . Configuration::DEFAULT_POLICY, $policy); |
|
| 72 | ||
| 73 | $noRollbackExceptions = array_unique($config[Configuration::NO_ROLLBACK_EXCEPTIONS]); |
|
| 74 | foreach ($noRollbackExceptions as $exceptionClassName) { |
|
| 75 | try { |
|
| 76 | $exceptionClass = new ReflectionClass($exceptionClassName); |
|
| 77 | } catch (ReflectionException $e) { |
|
| 78 | throw new InvalidArgumentException('Class not found: \'' . $exceptionClassName . '\'', null, $e); |
|
| 79 | } |
|
| 80 | ||
| 81 | if (($exceptionClassName !== Exception::class) && !$exceptionClass->isSubclassOf(Exception::class)) { |
|
| 82 | throw new InvalidArgumentException('Not an exception: \'' . $exceptionClassName . '\''); |
|
| 83 | } |
|
| 84 | } |
|
| 85 | $container->setParameter( |
|
| 86 | Configuration::ROOT_NODE_NAME . '.' . Configuration::NO_ROLLBACK_EXCEPTIONS, |
|
| 87 | $noRollbackExceptions |
|