summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJordi Boggiano <j.boggiano@seld.be>2017-03-17 23:08:00 +0100
committerGitHub <noreply@github.com>2017-03-17 23:08:00 +0100
commitd9462d50b07b1e141c47513f2a859fe76e45dbe9 (patch)
treed9765e81a042d0a67626a3a95e6c5f3863f40049
parent772a470c1afa002cbf97b4d0a625a638674fd686 (diff)
parent59d3df2f3870c274c32f769e9814837a144aca30 (diff)
downloadmonolog-d9462d50b07b1e141c47513f2a859fe76e45dbe9.zip
monolog-d9462d50b07b1e141c47513f2a859fe76e45dbe9.tar.gz
monolog-d9462d50b07b1e141c47513f2a859fe76e45dbe9.tar.bz2
Merge pull request #936 from zerkms/MICRO_OPT_FOREACH_INSTEAD_OF_CURRENT/NEXT
Replaced current/next-style loop with foreach
-rw-r--r--src/Monolog/Logger.php13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/Monolog/Logger.php b/src/Monolog/Logger.php
index f942c1a..bfbe20c 100644
--- a/src/Monolog/Logger.php
+++ b/src/Monolog/Logger.php
@@ -281,14 +281,11 @@ class Logger implements LoggerInterface
{
// check if any handler will handle this message so we can return early and save cycles
$handlerKey = null;
- reset($this->handlers);
- while ($handler = current($this->handlers)) {
+ foreach ($this->handlers as $key => $handler) {
if ($handler->isHandling(['level' => $level])) {
- $handlerKey = key($this->handlers);
+ $handlerKey = $key;
break;
}
-
- next($this->handlers);
}
if (null === $handlerKey) {
@@ -311,6 +308,12 @@ class Logger implements LoggerInterface
$record = call_user_func($processor, $record);
}
+ // advance the array pointer to the first handler that will handle this record
+ reset($this->handlers);
+ while ($handlerKey !== key($this->handlers)) {
+ next($this->handlers);
+ }
+
while ($handler = current($this->handlers)) {
if (true === $handler->handle($record)) {
break;