PluginProbe
Packeta / 2.1
Packeta v2.1
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
← All changes | src/Packetery/Module/MessageManager.php +45 -16 1.3.22.1 View file →
@@ -8,9 +8,10 @@
8 8 declare( strict_types=1 );
9 9
10 10 namespace Packetery\Module;
11 11
12 -use PacketeryLatte\Engine;
12 +use Packetery\Latte\Engine;
13 +use Packetery\Module\Framework\WpAdapter;
13 14
14 15 /**
15 16 * Class Message_Manager
16 17 *
@@ -34,21 +35,25 @@
34 35 */
35 36 private $latteEngine;
36 37
37 38 /**
39 + * @var WpAdapter
40 + */
41 + private $wpAdapter;
42 +
43 + /**
38 44 * Messages to be displayed.
39 45 *
40 - * @var array
46 + * @var array<array<string, string>>
41 47 */
42 48 private $messages = [];
43 49
44 - /**
45 - * Message_Manager constructor.
46 - *
47 - * @param Engine $latteEngine PacketeryLatte engine.
48 - */
49 - public function __construct( Engine $latteEngine ) {
50 + public function __construct(
51 + Engine $latteEngine,
52 + WpAdapter $wpAdapter
53 + ) {
50 54 $this->latteEngine = $latteEngine;
55 + $this->wpAdapter = $wpAdapter;
51 56 }
52 57
53 58 /**
54 59 * Inits manager on plugin load.
@@ -53,10 +58,10 @@
53 58 /**
54 59 * Inits manager on plugin load.
55 60 */
56 61 public function init(): void {
57 - $messages = get_transient( $this->getTransientName() );
58 - if ( ! $messages ) {
62 + $messages = $this->wpAdapter->getTransient( $this->getTransientName() );
63 + if ( $messages === false ) {
59 64 $messages = [];
60 65 }
61 66
62 67 $this->messages = $messages;
@@ -65,9 +70,9 @@
65 70 /**
66 71 * Gets transient name.
67 72 */
68 73 private function getTransientName(): string {
69 - return 'packetery_message_manager_messages_' . wp_get_session_token();
74 + return Transients::MESSAGE_MANAGER_MESSAGES_PREFIX . $this->wpAdapter->getSessionToken();
70 75 }
71 76
72 77 /**
73 78 * Flashes messages to end user.
@@ -77,17 +82,40 @@
77 82 * @param string $renderer Renderer of message.
78 83 * @param string $context Message context.
79 84 */
80 85 public function flash_message( string $message, string $type = self::TYPE_SUCCESS, string $renderer = self::RENDERER_WORDPRESS, string $context = '' ): void {
81 - $message = [
86 + $message = [
82 87 'type' => $type,
83 88 'message' => $message,
84 89 'renderer' => $renderer,
85 90 'context' => $context,
86 91 ];
92 +
93 + $this->flashMessageArray( $message );
94 + }
95 +
96 + /**
97 + * Flash message.
98 + *
99 + * @param Message $message Message.
100 + *
101 + * @return void
102 + */
103 + public function flashMessageObject( Message $message ): void {
104 + $this->flashMessageArray( $message->toArray() );
105 + }
106 +
107 + /**
108 + * Adds message.
109 + *
110 + * @param array $message Message.
111 + *
112 + * @return void
113 + */
114 + private function flashMessageArray( array $message ): void {
87 115 $this->messages[] = $message;
88 116
89 - set_transient( $this->getTransientName(), $this->messages, self::EXPIRATION );
117 + $this->wpAdapter->setTransient( $this->getTransientName(), $this->messages, self::EXPIRATION );
90 118 }
91 119
92 120 /**
93 121 * Renders messages.
@@ -94,9 +122,9 @@
94 122 *
95 123 * @param string $renderer Message renderer.
96 124 * @param string $context Message context.
97 125 */
98 - public function render( string $renderer = self::RENDERER_WORDPRESS, string $context = '' ): void {
126 + public function render( string $renderer, string $context = '' ): void {
99 127 // @codingStandardsIgnoreStart
100 128 echo $this->renderToString( $renderer, $context );
101 129 // @codingStandardsIgnoreEnd
102 130 }
@@ -106,9 +134,9 @@
106 134 *
107 135 * @param string $renderer Message renderer.
108 136 * @param string $context Message context.
109 137 */
110 - public function renderToString( string $renderer = self::RENDERER_WORDPRESS, string $context = '' ): string {
138 + public function renderToString( string $renderer, string $context ): string {
111 139 $output = '';
112 140
113 141 foreach ( $this->messages as $key => $message ) {
114 142 if ( $message['renderer'] !== $renderer ) {
@@ -128,8 +156,9 @@
128 156
129 157 unset( $this->messages[ $key ] );
130 158 }
131 159
132 - set_transient( $this->getTransientName(), $this->messages, self::EXPIRATION );
160 + $this->wpAdapter->setTransient( $this->getTransientName(), $this->messages, self::EXPIRATION );
161 +
133 162 return $output;
134 163 }
135 164 }