diff options
author | Jordi Boggiano <j.boggiano@seld.be> | 2017-06-19 02:16:33 +0200 |
---|---|---|
committer | Jordi Boggiano <j.boggiano@seld.be> | 2017-06-19 02:16:33 +0200 |
commit | 1417e2d183a12996c7a626985e2c6ce32dd08b3e (patch) | |
tree | 515a2a90e194a2b31d6299ad3677dbd7a0facc40 | |
parent | 5a041bab8f16c88cb7f4767f2fc32434c67d1dc2 (diff) | |
parent | 4260b467605950f2de533b43dab15b92324acd2b (diff) | |
download | monolog-1417e2d183a12996c7a626985e2c6ce32dd08b3e.zip monolog-1417e2d183a12996c7a626985e2c6ce32dd08b3e.tar.gz monolog-1417e2d183a12996c7a626985e2c6ce32dd08b3e.tar.bz2 |
Merge branch '1.x'
-rw-r--r-- | composer.json | 2 | ||||
-rw-r--r-- | src/Monolog/Handler/ChromePHPHandler.php | 2 | ||||
-rw-r--r-- | src/Monolog/Handler/DynamoDbHandler.php | 4 | ||||
-rw-r--r-- | src/Monolog/Handler/HandlerWrapper.php | 18 | ||||
-rw-r--r-- | src/Monolog/Handler/SlackWebhookHandler.php | 15 | ||||
-rw-r--r-- | src/Monolog/Handler/SwiftMailerHandler.php | 7 | ||||
-rw-r--r-- | src/Monolog/Processor/IntrospectionProcessor.php | 7 | ||||
-rw-r--r-- | tests/Monolog/Handler/ChromePHPHandlerTest.php | 17 | ||||
-rw-r--r-- | tests/Monolog/Handler/DynamoDbHandlerTest.php | 11 | ||||
-rw-r--r-- | tests/Monolog/Handler/RotatingFileHandlerTest.php | 8 | ||||
-rw-r--r-- | tests/Monolog/Handler/SwiftMailerHandlerTest.php | 2 |
11 files changed, 66 insertions, 27 deletions
diff --git a/composer.json b/composer.json index 61d7824..bc87c44 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "doctrine/couchdb": "~1.0@dev", "aws/aws-sdk-php": "^2.4.9 || ^3.0", "php-amqplib/php-amqplib": "~2.4", - "swiftmailer/swiftmailer": "~5.3", + "swiftmailer/swiftmailer": "^5.3|^6.0", "php-console/php-console": "^3.1.3", "jakub-onderka/php-parallel-lint": "^0.9", "predis/predis": "^1.1", diff --git a/src/Monolog/Handler/ChromePHPHandler.php b/src/Monolog/Handler/ChromePHPHandler.php index 9981ab8..4c6be69 100644 --- a/src/Monolog/Handler/ChromePHPHandler.php +++ b/src/Monolog/Handler/ChromePHPHandler.php @@ -37,7 +37,7 @@ class ChromePHPHandler extends AbstractProcessingHandler /** * Regular expression to detect supported browsers (matches any Chrome, or Firefox 43+) */ - const USER_AGENT_REGEX = '{\b(?:Chrome/\d+(?:\.\d+)*|Firefox/(?:4[3-9]|[5-9]\d|\d{3,})(?:\.\d)*)\b}'; + const USER_AGENT_REGEX = '{\b(?:Chrome/\d+(?:\.\d+)*|HeadlessChrome|Firefox/(?:4[3-9]|[5-9]\d|\d{3,})(?:\.\d)*)\b}'; protected static $initialized = false; diff --git a/src/Monolog/Handler/DynamoDbHandler.php b/src/Monolog/Handler/DynamoDbHandler.php index edbc630..a6991fa 100644 --- a/src/Monolog/Handler/DynamoDbHandler.php +++ b/src/Monolog/Handler/DynamoDbHandler.php @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Aws\Common\Aws; +use Aws\Sdk; use Aws\DynamoDb\DynamoDbClient; use Monolog\Formatter\FormatterInterface; use Aws\DynamoDb\Marshaler; @@ -56,7 +56,7 @@ class DynamoDbHandler extends AbstractProcessingHandler */ public function __construct(DynamoDbClient $client, $table, $level = Logger::DEBUG, $bubble = true) { - if (defined('Aws\Common\Aws::VERSION') && version_compare(Aws::VERSION, '3.0', '>=')) { + if (defined('Aws\Sdk::VERSION') && version_compare(Sdk::VERSION, '3.0', '>=')) { $this->version = 3; $this->marshaler = new Marshaler; } else { diff --git a/src/Monolog/Handler/HandlerWrapper.php b/src/Monolog/Handler/HandlerWrapper.php index 5eacf00..28fe57d 100644 --- a/src/Monolog/Handler/HandlerWrapper.php +++ b/src/Monolog/Handler/HandlerWrapper.php @@ -16,15 +16,17 @@ use Monolog\Formatter\FormatterInterface; /** * This simple wrapper class can be used to extend handlers functionality. * - * Example: A filtering handle. Inherit from this class, override isHandling() like this + * Example: A custom filtering that can be applied to any handler. * - * public function isHandling(array $record) - * { - * if ($record meets certain conditions) { - * return false; - * } - * return $this->handler->isHandling($record); - * } + * Inherit from this class and override handle() like this: + * + * public function handle(array $record) + * { + * if ($record meets certain conditions) { + * return false; + * } + * return $this->handler->handle($record); + * } * * @author Alexey Karapetov <alexey@karapetov.com> */ diff --git a/src/Monolog/Handler/SlackWebhookHandler.php b/src/Monolog/Handler/SlackWebhookHandler.php index e97a348..4325d11 100644 --- a/src/Monolog/Handler/SlackWebhookHandler.php +++ b/src/Monolog/Handler/SlackWebhookHandler.php @@ -81,13 +81,18 @@ class SlackWebhookHandler extends AbstractProcessingHandler $postString = json_encode($postData); $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $this->webhookUrl); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + $options = [ + CURLOPT_URL => $this->webhookUrl, + CURLOPT_POST => true, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_HTTPHEADER => ['Content-type: application/json'], + CURLOPT_POSTFIELDS => $postString + ]; if (defined('CURLOPT_SAFE_UPLOAD')) { - curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true); + $options[CURLOPT_SAFE_UPLOAD] = true; } - curl_setopt($ch, CURLOPT_POSTFIELDS, array('payload' => $postString)); + + curl_setopt_array($ch, $options); Curl\Util::execute($ch); } diff --git a/src/Monolog/Handler/SwiftMailerHandler.php b/src/Monolog/Handler/SwiftMailerHandler.php index f4816b5..3359ac8 100644 --- a/src/Monolog/Handler/SwiftMailerHandler.php +++ b/src/Monolog/Handler/SwiftMailerHandler.php @@ -14,6 +14,7 @@ namespace Monolog\Handler; use Monolog\Logger; use Monolog\Formatter\LineFormatter; use Swift_Message; +use Swift; /** * SwiftMailerHandler uses Swift_Mailer to send the emails @@ -79,7 +80,11 @@ class SwiftMailerHandler extends MailHandler } $message->setBody($content, $mime); - $message->setDate(time()); + if (version_compare(Swift::VERSION, '6.0.0', '>=')) { + $message->setDate(new \DateTimeImmutable()); + } else { + $message->setDate(time()); + } return $message; } diff --git a/src/Monolog/Processor/IntrospectionProcessor.php b/src/Monolog/Processor/IntrospectionProcessor.php index e1b5d3a..3a27529 100644 --- a/src/Monolog/Processor/IntrospectionProcessor.php +++ b/src/Monolog/Processor/IntrospectionProcessor.php @@ -51,7 +51,12 @@ class IntrospectionProcessor return $record; } - $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); + /* + * http://php.net/manual/en/function.debug-backtrace.php + * As of 5.3.6, DEBUG_BACKTRACE_IGNORE_ARGS option was added. + * Any version less than 5.3.6 must use the DEBUG_BACKTRACE_IGNORE_ARGS constant value '2'. + */ + $trace = debug_backtrace((PHP_VERSION_ID < 50306) ? 2 : DEBUG_BACKTRACE_IGNORE_ARGS); // skip first since it's always the current method array_shift($trace); diff --git a/tests/Monolog/Handler/ChromePHPHandlerTest.php b/tests/Monolog/Handler/ChromePHPHandlerTest.php index c79818c..e9a1f98 100644 --- a/tests/Monolog/Handler/ChromePHPHandlerTest.php +++ b/tests/Monolog/Handler/ChromePHPHandlerTest.php @@ -25,8 +25,13 @@ class ChromePHPHandlerTest extends TestCase $_SERVER['HTTP_USER_AGENT'] = 'Monolog Test; Chrome/1.0'; } - public function testHeaders() + /** + * @dataProvider agentsProvider + */ + public function testHeaders($agent) { + $_SERVER['HTTP_USER_AGENT'] = $agent; + $handler = new TestChromePHPHandler(); $handler->setFormatter($this->getIdentityFormatter()); $handler->handle($this->getRecord(Logger::DEBUG)); @@ -47,6 +52,16 @@ class ChromePHPHandlerTest extends TestCase $this->assertEquals($expected, $handler->getHeaders()); } + public static function agentsProvider() + { + return array( + array('Monolog Test; Chrome/1.0'), + array('Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'), + array('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/56.0.2924.76 Chrome/56.0.2924.76 Safari/537.36'), + array('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome Safari/537.36'), + ); + } + public function testHeadersOverflow() { $handler = new TestChromePHPHandler(); diff --git a/tests/Monolog/Handler/DynamoDbHandlerTest.php b/tests/Monolog/Handler/DynamoDbHandlerTest.php index d29f6e8..9d61356 100644 --- a/tests/Monolog/Handler/DynamoDbHandlerTest.php +++ b/tests/Monolog/Handler/DynamoDbHandlerTest.php @@ -53,13 +53,20 @@ class DynamoDbHandlerTest extends TestCase $handler = new DynamoDbHandler($this->client, 'foo'); $handler->setFormatter($formatter); + $isV3 = defined('Aws\Sdk::VERSION') && version_compare(\Aws\Sdk::VERSION, '3.0', '>='); + if ($isV3) { + $expFormatted = array('foo' => array('N' => 1), 'bar' => array('N' => 2)); + } else { + $expFormatted = $formatted; + } + $formatter ->expects($this->once()) ->method('format') ->with($record) ->will($this->returnValue($formatted)); $this->client - ->expects($this->once()) + ->expects($isV3 ? $this->never() : $this->once()) ->method('formatAttributes') ->with($this->isType('array')) ->will($this->returnValue($formatted)); @@ -68,7 +75,7 @@ class DynamoDbHandlerTest extends TestCase ->method('__call') ->with('putItem', [[ 'TableName' => 'foo', - 'Item' => $formatted, + 'Item' => $expFormatted, ]]); $handler->handle($record); diff --git a/tests/Monolog/Handler/RotatingFileHandlerTest.php b/tests/Monolog/Handler/RotatingFileHandlerTest.php index be36eff..f2d61db 100644 --- a/tests/Monolog/Handler/RotatingFileHandlerTest.php +++ b/tests/Monolog/Handler/RotatingFileHandlerTest.php @@ -102,11 +102,11 @@ class RotatingFileHandlerTest extends TestCase $dayCallback = function ($ago) use ($now) { return $now + 86400 * $ago; }; - $monthCallback = function ($ago) { - return gmmktime(0, 0, 0, (int) (date('n') + $ago), (int) date('d'), (int) date('Y')); + $monthCallback = function($ago) { + return gmmktime(0, 0, 0, (int) (date('n') + $ago), 1, (int) date('Y')); }; - $yearCallback = function ($ago) { - return gmmktime(0, 0, 0, (int) date('n'), (int) date('d'), (int) (date('Y') + $ago)); + $yearCallback = function($ago) { + return gmmktime(0, 0, 0, 1, 1, (int) (date('Y') + $ago)); }; return [ diff --git a/tests/Monolog/Handler/SwiftMailerHandlerTest.php b/tests/Monolog/Handler/SwiftMailerHandlerTest.php index ec7fc21..3c77127 100644 --- a/tests/Monolog/Handler/SwiftMailerHandlerTest.php +++ b/tests/Monolog/Handler/SwiftMailerHandlerTest.php @@ -99,7 +99,7 @@ class SwiftMailerHandlerTest extends TestCase public function testMessageHaveUniqueId() { - $messageTemplate = \Swift_Message::newInstance(); + $messageTemplate = new \Swift_Message(); $handler = new SwiftMailerHandler($this->mailer, $messageTemplate); $method = new \ReflectionMethod('Monolog\Handler\SwiftMailerHandler', 'buildMessage'); |