10000 minor #22589 Extract method refactoring for ResourceCheckerConfigCach… · symfony/symfony@07f7973 · GitHub
[go: up one dir, main page]

Skip to content

Commit 07f7973

Browse files
minor #22589 Extract method refactoring for ResourceCheckerConfigCache (mpdude)
This PR was squashed before being merged into the 3.4 branch (closes #22589). Discussion ---------- Extract method refactoring for ResourceCheckerConfigCache | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | | License | MIT | Doc PR | Improves code readability. Commits ------- 685c353 Extract method refactoring for ResourceCheckerConfigCache
2 parents bc84304 + 685c353 commit 07f7973

File tree

1 file changed

+32
-22
lines changed

1 file changed

+32
-22
lines changed

src/Symfony/Component/Config/ResourceCheckerConfigCache.php

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -73,37 +73,19 @@ public function isFresh()
7373
}
7474

7575
$metadata = $this->getMetaFile();
76+
7677
if (!is_file($metadata)) {
7778
return false;
7879
}
7980

80-
$e = null;
81-
$meta = false;
82-
$time = filemtime($this->file);
83-
$signalingException = new \UnexpectedValueException();
84-
$prevUnserializeHandler = ini_set('unserialize_callback_func', '');
85-
$prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context) use (&$prevErrorHandler, $signalingException) {
86-
if (E_WARNING === $type && 'Class __PHP_Incomplete_Class has no unserializer' === $msg) {
87-
throw $signalingException;
88-
}
89-
90-
return $prevErrorHandler ? $prevErrorHandler($type, $msg, $file, $line, $context) : false;
91-
});
81+
$meta = $this->safelyUnserialize($metadata);
9282

93-
try {
94-
$meta = unserialize(file_get_contents($metadata));
95-
} catch (\Error $e) {
96-
} catch (\Exception $e) {
97-
}
98-
restore_error_handler();
99-
ini_set('unserialize_callback_func', $prevUnserializeHandler);
100-
if (null !== $e && $e !== $signalingException) {
101-
throw $e;
102-
}
10383
if (false === $meta) {
10484
return false;
10585
}
10686

87+
$time = filemtime($this->file);
88+
10789
foreach ($meta as $resource) {
10890
/* @var ResourceInterface $resource */
10991
foreach ($this->resourceCheckers as $checker) {
@@ -161,4 +143,32 @@ private function getMetaFile()
161143
{
162144
return $this->file.'.meta';
163145
}
146+
147+
private function safelyUnserialize($file)
148+
{
149+
$e = null;
150+
$meta = false;
151+
$signalingException = new \UnexpectedValueException();
152+
$prevUnserializeHandler = ini_set('unserialize_callback_func', '');
153+
$prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context) use (&$prevErrorHandler, $signalingException) {
154+
if (E_WARNING === $type && 'Class __PHP_Incomplete_Class has no unserializer' === $msg) {
155+
throw $signalingException;
156+
}
157+
158+
return $prevErrorHandler ? $prevErrorHandler($type, $msg, $file, $line, $context) : false;
159+
});
160+
161+
try {
162+
$meta = unserialize(file_get_contents($file));
163+
} catch (\Error $e) {
164+
} catch (\Exception $e) {
165+
}
166+
restore_error_handler();
167+
ini_set('unserialize_callback_func', $prevUnserializeHandler);
168+
if (null !== $e && $e !== $signalingException) {
169+
throw $e;
170+
}
171+
172+
return $meta;
173+
}
164174
}

0 commit comments

Comments
 (0)
0