|
344 | 344 | * - [level]: level name or int value, defaults to DEBUG |
345 | 345 | * - [bubble]: bool, defaults to true |
346 | 346 | * |
| 347 | + * - telegram: |
| 348 | + * - token: Telegram bot access token provided by BotFather |
| 349 | + * - channel: Telegram channel name |
| 350 | + * - [level]: level name or int value, defaults to DEBUG |
| 351 | + * - [bubble]: bool, defaults to true |
| 352 | + * - [parse_mode]: optional the kind of formatting that is used for the message |
| 353 | + * - [disable_webpage_preview]: bool, defaults to false, disables link previews for links in the message |
| 354 | + * - [disable_notification]: bool, defaults to false, sends the message silently. Users will receive a notification with no sound |
| 355 | + * - [split_long_messages]: bool, defaults to false, split messages longer than 4096 bytes into multiple messages |
| 356 | + * - [delay_between_messages]: bool, defaults to false, adds a 1sec delay/sleep between sending split messages |
| 357 | + * |
347 | 358 | * All handlers can also be marked with `nested: true` to make sure they are never added explicitly to the stack |
348 | 359 | * |
349 | 360 | * @author Jordi Boggiano <j.boggiano@seld.be> |
@@ -564,6 +575,11 @@ public function getConfigTreeBuilder() |
564 | 575 | ->scalarNode('release')->defaultNull()->end() // raven_handler, sentry_handler |
565 | 576 | ->scalarNode('environment')->defaultNull()->end() // raven_handler, sentry_handler |
566 | 577 | ->scalarNode('message_type')->defaultValue(0)->end() // error_log |
| 578 | + ->scalarNode('parse_mode')->defaultNull()->end() // telegram |
| 579 | + ->booleanNode('disable_webpage_preview')->defaultNull()->end() // telegram |
| 580 | + ->booleanNode('disable_notification')->defaultNull()->end() // telegram |
| 581 | + ->booleanNode('split_long_messages')->defaultFalse()->end() // telegram |
| 582 | + ->booleanNode('delay_between_messages')->defaultFalse()->end() // telegram |
567 | 583 | ->arrayNode('tags') // loggly |
568 | 584 | ->beforeNormalization() |
569 | 585 | ->ifString() |
@@ -600,6 +616,7 @@ public function getConfigTreeBuilder() |
600 | 616 | $this->addMongoSection($handlerNode); |
601 | 617 | $this->addElasticsearchSection($handlerNode); |
602 | 618 | $this->addRedisSection($handlerNode); |
| 619 | + $this->addTelegramSection($handlerNode); |
603 | 620 | $this->addPredisSection($handlerNode); |
604 | 621 | $this->addMailerSection($handlerNode); |
605 | 622 | $this->addVerbosityLevelSection($handlerNode); |
@@ -865,6 +882,25 @@ private function addElasticsearchSection(ArrayNodeDefinition $handerNode) |
865 | 882 | ; |
866 | 883 | } |
867 | 884 |
|
| 885 | + private function addTelegramSection(ArrayNodeDefinition $handerNode) |
| 886 | + { |
| 887 | + $handerNode |
| 888 | + ->children() |
| 889 | + ->arrayNode('telegram') |
| 890 | + ->canBeUnset() |
| 891 | + ->children() |
| 892 | + ->scalarNode('token')->end() |
| 893 | + ->scalarNode('channel')->end() |
| 894 | + ->end() |
| 895 | + ->end() |
| 896 | + ->end() |
| 897 | + ->validate() |
| 898 | + ->ifTrue(function ($v) { return 'telegram' === $v['type'] && empty($v['id']) && (empty($v['token']) || empty($v['channel'])); }) |
| 899 | + ->thenInvalid('The token and channel have to be specified to use a TelegramBotHandler') |
| 900 | + ->end() |
| 901 | + ; |
| 902 | + } |
| 903 | + |
868 | 904 | private function addRedisSection(ArrayNodeDefinition $handerNode) |
869 | 905 | { |
870 | 906 | $handerNode |
|
0 commit comments