• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Yoast / whip / 7300735247

22 Dec 2023 02:07PM UTC coverage: 31.683% (+3.0%) from 28.713%
7300735247

push

github

web-flow
Merge pull request #157 from Yoast/move-to-namespace-v2

Move source classes to the `Yoast\WHIPv2` namespace

30 of 114 new or added lines in 18 files covered. (26.32%)

96 of 303 relevant lines covered (31.68%)

2.66 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

23.81
/src/MessagesManager.php
1
<?php
2

3
namespace Yoast\WHIPv2;
4

5
use Yoast\WHIPv2\Interfaces\Message;
6
use Yoast\WHIPv2\Messages\NullMessage;
7

8
/**
9
 * Manages messages using a global to prevent duplicate messages.
10
 */
11
class MessagesManager {
12

13
        /**
14
         * MessagesManager constructor.
15
         */
16
        public function __construct() {
1✔
17
                if ( ! \array_key_exists( 'whip_messages', $GLOBALS ) ) {
1✔
18
                        $GLOBALS['whip_messages'] = array();
1✔
19
                }
20
        }
21

22
        /**
23
         * Adds a message to the Messages Manager.
24
         *
25
         * @param Message $message The message to add.
26
         *
27
         * @return void
28
         */
NEW
29
        public function addMessage( Message $message ) {
×
NEW
30
                $whipVersion = require __DIR__ . '/Configs/version.php';
×
31

32
                $GLOBALS['whip_messages'][ $whipVersion ] = $message;
×
33
        }
34

35
        /**
36
         * Determines whether or not there are messages available.
37
         *
38
         * @return bool Whether or not there are messages available.
39
         */
40
        public function hasMessages() {
3✔
41
                return isset( $GLOBALS['whip_messages'] ) && \count( $GLOBALS['whip_messages'] ) > 0;
3✔
42
        }
43

44
        /**
45
         * Lists the messages that are currently available.
46
         *
47
         * @return array The messages that are currently set.
48
         */
49
        public function listMessages() {
×
50
                return $GLOBALS['whip_messages'];
×
51
        }
52

53
        /**
54
         * Deletes all messages.
55
         *
56
         * @return void
57
         */
58
        public function deleteMessages() {
×
59
                unset( $GLOBALS['whip_messages'] );
×
60
        }
61

62
        /**
63
         * Gets the latest message.
64
         *
65
         * @return Message The message. Returns a NullMessage if none is found.
66
         */
67
        public function getLatestMessage() {
×
68
                if ( ! $this->hasMessages() ) {
×
NEW
69
                        return new NullMessage();
×
70
                }
71

72
                $messages = $this->sortByVersion( $this->listMessages() );
×
73

74
                $this->deleteMessages();
×
75

NEW
76
                return \array_pop( $messages );
×
77
        }
78

79
        /**
80
         * Sorts the list of messages based on the version number.
81
         *
82
         * @param array $messages The list of messages to sort.
83
         *
84
         * @return array The sorted list of messages.
85
         */
86
        private function sortByVersion( array $messages ) {
×
NEW
87
                \uksort( $messages, 'version_compare' );
×
88

89
                return $messages;
×
90
        }
91
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc