Skip to content

Commit

Permalink
Merge branch '4.4' into 5.2
Browse files Browse the repository at this point in the history
* 4.4:
  Fix usage of str_contains()
  fix intersection types in tests
  • Loading branch information
nicolas-grekas committed Jul 21, 2021
2 parents ae17d00 + 2e3c0f2 commit 7b4ef36
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 10 deletions.
15 changes: 6 additions & 9 deletions MessageCatalogue.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,10 @@ public function getLocale()
public function getDomains()
{
$domains = [];
$suffixLength = \strlen(self::INTL_DOMAIN_SUFFIX);

foreach ($this->messages as $domain => $messages) {
if (\strlen($domain) > $suffixLength && false !== $i = strpos($domain, self::INTL_DOMAIN_SUFFIX, -$suffixLength)) {
$domain = substr($domain, 0, $i);
if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) {
$domain = substr($domain, 0, -\strlen(self::INTL_DOMAIN_SUFFIX));
}
$domains[$domain] = $domain;
}
Expand All @@ -68,19 +67,18 @@ public function all(string $domain = null)
{
if (null !== $domain) {
// skip messages merge if intl-icu requested explicitly
if (str_contains($domain, self::INTL_DOMAIN_SUFFIX)) {
if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) {
return $this->messages[$domain] ?? [];
}

return ($this->messages[$domain.self::INTL_DOMAIN_SUFFIX] ?? []) + ($this->messages[$domain] ?? []);
}

$allMessages = [];
$suffixLength = \strlen(self::INTL_DOMAIN_SUFFIX);

foreach ($this->messages as $domain => $messages) {
if (\strlen($domain) > $suffixLength && false !== $i = strpos($domain, self::INTL_DOMAIN_SUFFIX, -$suffixLength)) {
$domain = substr($domain, 0, $i);
if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) {
$domain = substr($domain, 0, -\strlen(self::INTL_DOMAIN_SUFFIX));
$allMessages[$domain] = $messages + ($allMessages[$domain] ?? []);
} else {
$allMessages[$domain] = ($allMessages[$domain] ?? []) + $messages;
Expand Down Expand Up @@ -161,8 +159,7 @@ public function add(array $messages, string $domain = 'messages')
$this->messages[$domain] = [];
}
$intlDomain = $domain;
$suffixLength = \strlen(self::INTL_DOMAIN_SUFFIX);
if (\strlen($domain) < $suffixLength || !str_contains($domain, self::INTL_DOMAIN_SUFFIX, -$suffixLength)) {
if (!str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) {
$intlDomain .= self::INTL_DOMAIN_SUFFIX;
}
foreach ($messages as $id => $message) {
Expand Down
2 changes: 1 addition & 1 deletion Tests/TranslatorCacheTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ public function testCatalogueIsReloadedWhenResourcesAreNoLongerFresh()
$catalogue = new MessageCatalogue($locale, []);
$catalogue->addResource(new StaleResource()); // better use a helper class than a mock, because it gets serialized in the cache and re-loaded

/** @var LoaderInterface|MockObject $loader */
/** @var MockObject&LoaderInterface $loader */
$loader = $this->createMock(LoaderInterface::class);
$loader
->expects($this->exactly(2))
Expand Down

0 comments on commit 7b4ef36

Please sign in to comment.