summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJordi Boggiano <j.boggiano@seld.be>2017-06-19 02:16:33 +0200
committerJordi Boggiano <j.boggiano@seld.be>2017-06-19 02:16:33 +0200
commit1417e2d183a12996c7a626985e2c6ce32dd08b3e (patch)
tree515a2a90e194a2b31d6299ad3677dbd7a0facc40
parent5a041bab8f16c88cb7f4767f2fc32434c67d1dc2 (diff)
parent4260b467605950f2de533b43dab15b92324acd2b (diff)
downloadmonolog-1417e2d183a12996c7a626985e2c6ce32dd08b3e.zip
monolog-1417e2d183a12996c7a626985e2c6ce32dd08b3e.tar.gz
monolog-1417e2d183a12996c7a626985e2c6ce32dd08b3e.tar.bz2
Merge branch '1.x'
-rw-r--r--composer.json2
-rw-r--r--src/Monolog/Handler/ChromePHPHandler.php2
-rw-r--r--src/Monolog/Handler/DynamoDbHandler.php4
-rw-r--r--src/Monolog/Handler/HandlerWrapper.php18
-rw-r--r--src/Monolog/Handler/SlackWebhookHandler.php15
-rw-r--r--src/Monolog/Handler/SwiftMailerHandler.php7
-rw-r--r--src/Monolog/Processor/IntrospectionProcessor.php7
-rw-r--r--tests/Monolog/Handler/ChromePHPHandlerTest.php17
-rw-r--r--tests/Monolog/Handler/DynamoDbHandlerTest.php11
-rw-r--r--tests/Monolog/Handler/RotatingFileHandlerTest.php8
-rw-r--r--tests/Monolog/Handler/SwiftMailerHandlerTest.php2
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');