Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 07f7973

Browse filesBrowse 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
Copy full SHA for 07f7973

File tree

1 file changed

+32
-22
lines changed
Filter options

1 file changed

+32
-22
lines changed

‎src/Symfony/Component/Config/ResourceCheckerConfigCache.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Config/ResourceCheckerConfigCache.php
+32-22Lines 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)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.