Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Collection.php
Go to the documentation of this file.
1 <?php
7 
15 {
21  protected $messages = [];
22 
26  protected $lastAddedMessage;
27 
35  {
36  if (!isset($this->messages[$message->getType()])) {
37  $this->messages[$message->getType()] = [];
38  }
39  $this->messages[$message->getType()][] = $message;
40  $this->lastAddedMessage = $message;
41  return $this;
42  }
43 
49  public function clear()
50  {
51  foreach ($this->messages as $type => $messages) {
52  foreach ($messages as $id => $message) {
54  if (!$message->getIsSticky()) {
55  unset($this->messages[$type][$id]);
56  }
57  }
58  if (empty($this->messages[$type])) {
59  unset($this->messages[$type]);
60  }
61  }
62  if ($this->lastAddedMessage instanceof MessageInterface && !$this->lastAddedMessage->getIsSticky()) {
63  $this->lastAddedMessage = null;
64  }
65  return $this;
66  }
67 
73  public function getLastAddedMessage()
74  {
76  }
77 
84  public function getMessageByIdentifier($identifier)
85  {
86  foreach ($this->messages as $messages) {
87  foreach ($messages as $message) {
89  if ($identifier === $message->getIdentifier()) {
90  return $message;
91  }
92  }
93  }
94  }
95 
102  public function deleteMessageByIdentifier($identifier)
103  {
104  foreach ($this->messages as $type => $messages) {
105  foreach ($messages as $id => $message) {
107  if ($identifier === $message->getIdentifier()) {
108  unset($this->messages[$type][$id]);
109  }
110  if (empty($this->messages[$type])) {
111  unset($this->messages[$type]);
112  }
113  }
114  }
115  }
116 
122  public function getItems()
123  {
124  $result = [];
125  foreach ($this->messages as $messages) {
126  $result = array_merge($result, $messages);
127  }
128 
129  return $result;
130  }
131 
138  public function getItemsByType($type)
139  {
140  return $this->messages[$type] ?? [];
141  }
142 
148  public function getErrors()
149  {
151  }
152 
159  public function getCountByType($type)
160  {
161  $result = 0;
162  if (isset($this->messages[$type])) {
163  $result = count($this->messages[$type]);
164  }
165  return $result;
166  }
167 
173  public function getCount()
174  {
175  $result = 0;
176  foreach ($this->messages as $messages) {
177  $result += count($messages);
178  }
179  return $result;
180  }
181 }
$id
Definition: fieldset.phtml:14
$message
$type
Definition: item.phtml:13
addMessage(MessageInterface $message)
Definition: Collection.php:34