Skip to content

Commit f5640e7

Browse files
authored
Merge pull request #346 from navarr/feature/additional-stubs
Add Stubs for Magento's loosey-string behavior
2 parents 30fe91c + 570cca8 commit f5640e7

File tree

3 files changed

+399
-0
lines changed

3 files changed

+399
-0
lines changed

src/Magento/Framework/Escaper.php

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
3+
namespace Magento\Framework;
4+
5+
use Stringable;
6+
7+
/**
8+
* @phpstan-type CastableToString null|scalar|Stringable
9+
*/
10+
class Escaper
11+
{
12+
/**
13+
* @param CastableToString|array<CastableToString> $data
14+
* @param string[]|null $allowedTags
15+
* @return ($data is array ? string[] : string)
16+
*/
17+
public function escapeHtml($data, array|null $allowedTags = null) {}
18+
19+
/**
20+
* @param CastableToString $string
21+
* @param bool $escapeSingleQuote
22+
* @return string
23+
*/
24+
public function escapeHtmlAttr($string, bool $escapeSingleQuote = true) {}
25+
26+
/**
27+
* @param CastableToString $string
28+
* @return string
29+
*/
30+
public function escapeUrl($string) {}
31+
32+
/**
33+
* @param CastableToString $string
34+
* @return string
35+
*/
36+
public function encodeUrlParam($string) {}
37+
38+
/**
39+
* @param CastableToString $string
40+
* @return string
41+
*/
42+
public function escapeJs($string) {}
43+
44+
/**
45+
* @param CastableToString $string
46+
* @return string
47+
*/
48+
public function escapeCss($string) {}
49+
50+
/**
51+
* @param CastableToString[]|CastableToString $data
52+
* @param string $quote
53+
* @return ($data is array ? string[] : string)
54+
*/
55+
public function escapeJsQuote($data, string $quote = '\'') {}
56+
57+
/**
58+
* @param CastableToString $data
59+
* @return string
60+
*/
61+
public function escapeXssInUrl($data) {}
62+
63+
/**
64+
* @param string $data
65+
* @param bool $addSlashes
66+
* @return string
67+
*/
68+
public function escapeQuote(string $data, bool $addSlashes = false) {}
69+
}
Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Framework\Message;
7+
8+
use \Stringable;
9+
10+
/**
11+
* Adds different types of messages to the session, and allows access to existing messages.
12+
*
13+
* @api
14+
* @since 100.0.2
15+
*/
16+
interface ManagerInterface
17+
{
18+
/**
19+
* Retrieve messages
20+
*
21+
* @param bool $clear
22+
* @param string|null $group
23+
* @return Collection
24+
*/
25+
public function getMessages($clear = false, $group = null);
26+
27+
/**
28+
* Retrieve default message group
29+
*
30+
* @return string
31+
*/
32+
public function getDefaultGroup();
33+
34+
/**
35+
* Adds new message to message collection
36+
*
37+
* @param MessageInterface $message
38+
* @param string|null $group
39+
* @return ManagerInterface
40+
*/
41+
public function addMessage(MessageInterface $message, $group = null);
42+
43+
/**
44+
* Adds messages array to message collection
45+
*
46+
* @param MessageInterface[] $messages
47+
* @param string|null $group
48+
* @return ManagerInterface
49+
*/
50+
public function addMessages(array $messages, $group = null);
51+
52+
/**
53+
* Adds new error message
54+
*
55+
* @param null|scalar|Stringable $message
56+
* @param string|null $group
57+
* @return ManagerInterface
58+
* @deprecated 100.1.0
59+
* @see \Magento\Framework\Message\ManagerInterface::addErrorMessage
60+
*/
61+
public function addError($message, $group = null);
62+
63+
/**
64+
* Adds new warning message
65+
*
66+
* @param null|scalar|Stringable $message
67+
* @param string|null $group
68+
* @return ManagerInterface
69+
* @deprecated 100.1.0
70+
* @see \Magento\Framework\Message\ManagerInterface::addWarningMessage
71+
*/
72+
public function addWarning($message, $group = null);
73+
74+
/**
75+
* Adds new notice message
76+
*
77+
* @param null|scalar|Stringable $message
78+
* @param string|null $group
79+
* @return ManagerInterface
80+
* @deprecated 100.1.0
81+
* @see \Magento\Framework\Message\ManagerInterface::addNoticeMessage
82+
*/
83+
public function addNotice($message, $group = null);
84+
85+
/**
86+
* Adds new success message
87+
*
88+
* @param null|scalar|Stringable $message
89+
* @param string|null $group
90+
* @return ManagerInterface
91+
* @deprecated 100.1.0
92+
* @see \Magento\Framework\Message\ManagerInterface::addSuccessMessage
93+
*/
94+
public function addSuccess($message, $group = null);
95+
96+
/**
97+
* Adds new error message
98+
*
99+
* @param null|scalar|Stringable $message
100+
* @param string|null $group
101+
* @return ManagerInterface
102+
*/
103+
public function addErrorMessage($message, $group = null);
104+
105+
/**
106+
* Adds new warning message
107+
*
108+
* @param null|scalar|Stringable $message
109+
* @param string|null $group
110+
* @return ManagerInterface
111+
*/
112+
public function addWarningMessage($message, $group = null);
113+
114+
/**
115+
* Adds new notice message
116+
*
117+
* @param null|scalar|Stringable $message
118+
* @param string|null $group
119+
* @return ManagerInterface
120+
*/
121+
public function addNoticeMessage($message, $group = null);
122+
123+
/**
124+
* Adds new success message
125+
*
126+
* @param null|scalar|Stringable $message
127+
* @param string|null $group
128+
* @return ManagerInterface
129+
*/
130+
public function addSuccessMessage($message, $group = null);
131+
132+
/**
133+
* Adds new complex error message
134+
*
135+
* @param string $identifier
136+
* @param mixed[] $data
137+
* @param string|null $group
138+
* @return ManagerInterface
139+
*/
140+
public function addComplexErrorMessage($identifier, array $data = [], $group = null);
141+
142+
/**
143+
* Adds new complex warning message
144+
*
145+
* @param string $identifier
146+
* @param mixed[] $data
147+
* @param string|null $group
148+
* @return ManagerInterface
149+
*/
150+
public function addComplexWarningMessage($identifier, array $data = [], $group = null);
151+
152+
/**
153+
* Adds new complex notice message
154+
*
155+
* @param string $identifier
156+
* @param mixed[] $data
157+
* @param string|null $group
158+
* @return ManagerInterface
159+
*/
160+
public function addComplexNoticeMessage($identifier, array $data = [], $group = null);
161+
162+
/**
163+
* Adds new complex success message
164+
*
165+
* @param string $identifier
166+
* @param mixed[] $data
167+
* @param string|null $group
168+
* @return ManagerInterface
169+
*/
170+
public function addComplexSuccessMessage($identifier, array $data = [], $group = null);
171+
172+
/**
173+
* Adds messages array to message collection, without adding duplicate messages
174+
*
175+
* @param MessageInterface[] $messages
176+
* @param string|null $group
177+
* @return ManagerInterface
178+
*/
179+
public function addUniqueMessages(array $messages, $group = null);
180+
181+
/**
182+
* Adds a message describing an exception. Does not contain Exception handling logic.
183+
*
184+
* @param \Exception $exception
185+
* @param scalar|Stringable|null $alternativeText
186+
* @param string|null $group
187+
* @return ManagerInterface
188+
* @deprecated 100.1.0
189+
* @see \Magento\Framework\Message\ManagerInterface::addExceptionMessage
190+
*/
191+
public function addException(\Exception $exception, $alternativeText = null, $group = null);
192+
193+
/**
194+
* Adds a message describing an exception. Does not contain Exception handling logic.
195+
*
196+
* @param \Exception $exception
197+
* @param scalar|Stringable|null $alternativeText
198+
* @param string|null $group
199+
* @return ManagerInterface
200+
*/
201+
public function addExceptionMessage(\Exception $exception, $alternativeText = null, $group = null);
202+
203+
/**
204+
* Creates identified message
205+
*
206+
* @param string $type
207+
* @param string|null $identifier
208+
* @return MessageInterface
209+
* @throws \InvalidArgumentException
210+
*/
211+
public function createMessage($type, $identifier = null);
212+
}

0 commit comments

Comments
 (0)