Skip to content

Add Stubs for Magento's loosey-string behavior #346

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions src/Magento/Framework/Escaper.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
<?php

namespace Magento\Framework;

use Stringable;

/**
* @phpstan-type CastableToString null|scalar|Stringable
*/
class Escaper
{
/**
* @param CastableToString|array<CastableToString> $data
* @param string[]|null $allowedTags
* @return ($data is array ? string[] : string)
*/
public function escapeHtml($data, array|null $allowedTags = null) {}

/**
* @param CastableToString $string
* @param bool $escapeSingleQuote
* @return string
*/
public function escapeHtmlAttr($string, bool $escapeSingleQuote = true) {}

/**
* @param CastableToString $string
* @return string
*/
public function escapeUrl($string) {}

/**
* @param CastableToString $string
* @return string
*/
public function encodeUrlParam($string) {}

/**
* @param CastableToString $string
* @return string
*/
public function escapeJs($string) {}

/**
* @param CastableToString $string
* @return string
*/
public function escapeCss($string) {}

/**
* @param CastableToString[]|CastableToString $data
* @param string $quote
* @return ($data is array ? string[] : string)
*/
public function escapeJsQuote($data, string $quote = '\'') {}

/**
* @param CastableToString $data
* @return string
*/
public function escapeXssInUrl($data) {}

/**
* @param string $data
* @param bool $addSlashes
* @return string
*/
public function escapeQuote(string $data, bool $addSlashes = false) {}
}
212 changes: 212 additions & 0 deletions src/Magento/Framework/Message/ManagerInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Message;

use \Stringable;

/**
* Adds different types of messages to the session, and allows access to existing messages.
*
* @api
* @since 100.0.2
*/
interface ManagerInterface
{
/**
* Retrieve messages
*
* @param bool $clear
* @param string|null $group
* @return Collection
*/
public function getMessages($clear = false, $group = null);

/**
* Retrieve default message group
*
* @return string
*/
public function getDefaultGroup();

/**
* Adds new message to message collection
*
* @param MessageInterface $message
* @param string|null $group
* @return ManagerInterface
*/
public function addMessage(MessageInterface $message, $group = null);

/**
* Adds messages array to message collection
*
* @param MessageInterface[] $messages
* @param string|null $group
* @return ManagerInterface
*/
public function addMessages(array $messages, $group = null);

/**
* Adds new error message
*
* @param null|scalar|Stringable $message
* @param string|null $group
* @return ManagerInterface
* @deprecated 100.1.0
* @see \Magento\Framework\Message\ManagerInterface::addErrorMessage
*/
public function addError($message, $group = null);

/**
* Adds new warning message
*
* @param null|scalar|Stringable $message
* @param string|null $group
* @return ManagerInterface
* @deprecated 100.1.0
* @see \Magento\Framework\Message\ManagerInterface::addWarningMessage
*/
public function addWarning($message, $group = null);

/**
* Adds new notice message
*
* @param null|scalar|Stringable $message
* @param string|null $group
* @return ManagerInterface
* @deprecated 100.1.0
* @see \Magento\Framework\Message\ManagerInterface::addNoticeMessage
*/
public function addNotice($message, $group = null);

/**
* Adds new success message
*
* @param null|scalar|Stringable $message
* @param string|null $group
* @return ManagerInterface
* @deprecated 100.1.0
* @see \Magento\Framework\Message\ManagerInterface::addSuccessMessage
*/
public function addSuccess($message, $group = null);

/**
* Adds new error message
*
* @param null|scalar|Stringable $message
* @param string|null $group
* @return ManagerInterface
*/
public function addErrorMessage($message, $group = null);

/**
* Adds new warning message
*
* @param null|scalar|Stringable $message
* @param string|null $group
* @return ManagerInterface
*/
public function addWarningMessage($message, $group = null);

/**
* Adds new notice message
*
* @param null|scalar|Stringable $message
* @param string|null $group
* @return ManagerInterface
*/
public function addNoticeMessage($message, $group = null);

/**
* Adds new success message
*
* @param null|scalar|Stringable $message
* @param string|null $group
* @return ManagerInterface
*/
public function addSuccessMessage($message, $group = null);

/**
* Adds new complex error message
*
* @param string $identifier
* @param mixed[] $data
* @param string|null $group
* @return ManagerInterface
*/
public function addComplexErrorMessage($identifier, array $data = [], $group = null);

/**
* Adds new complex warning message
*
* @param string $identifier
* @param mixed[] $data
* @param string|null $group
* @return ManagerInterface
*/
public function addComplexWarningMessage($identifier, array $data = [], $group = null);

/**
* Adds new complex notice message
*
* @param string $identifier
* @param mixed[] $data
* @param string|null $group
* @return ManagerInterface
*/
public function addComplexNoticeMessage($identifier, array $data = [], $group = null);

/**
* Adds new complex success message
*
* @param string $identifier
* @param mixed[] $data
* @param string|null $group
* @return ManagerInterface
*/
public function addComplexSuccessMessage($identifier, array $data = [], $group = null);

/**
* Adds messages array to message collection, without adding duplicate messages
*
* @param MessageInterface[] $messages
* @param string|null $group
* @return ManagerInterface
*/
public function addUniqueMessages(array $messages, $group = null);

/**
* Adds a message describing an exception. Does not contain Exception handling logic.
*
* @param \Exception $exception
* @param scalar|Stringable|null $alternativeText
* @param string|null $group
* @return ManagerInterface
* @deprecated 100.1.0
* @see \Magento\Framework\Message\ManagerInterface::addExceptionMessage
*/
public function addException(\Exception $exception, $alternativeText = null, $group = null);

/**
* Adds a message describing an exception. Does not contain Exception handling logic.
*
* @param \Exception $exception
* @param scalar|Stringable|null $alternativeText
* @param string|null $group
* @return ManagerInterface
*/
public function addExceptionMessage(\Exception $exception, $alternativeText = null, $group = null);

/**
* Creates identified message
*
* @param string $type
* @param string|null $identifier
* @return MessageInterface
* @throws \InvalidArgumentException
*/
public function createMessage($type, $identifier = null);
}
Loading