Skip to content

Commit 847d5bb

Browse files
author
ndm2
committed
Keep the transliterator identifier getter/setter.
1 parent b29fd68 commit 847d5bb

File tree

2 files changed

+80
-200
lines changed

2 files changed

+80
-200
lines changed

src/Utility/Text.php

Lines changed: 37 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,18 @@ class Text
2323
{
2424

2525
/**
26-
* Default transliterator id string.
26+
* Default transliterator.
2727
*
28-
* @deprecated 3.7.0 Use $_defaultTransliterator instead.
29-
* @var string $_defaultTransliteratorId Transliterator identifier string.
28+
* @var \Transliterator Transliterator instance.
3029
*/
31-
protected static $_defaultTransliteratorId;
30+
protected static $_defaultTransliterator;
3231

3332
/**
34-
* Default transliterator.
33+
* Default transliterator id string.
3534
*
36-
* @var \Transliterator|string Either a Transliterator instance, or a
37-
* transliterator identifier string.
35+
* @var string $_defaultTransliteratorId Transliterator identifier string.
3836
*/
39-
protected static $_defaultTransliterator = 'Any-Latin; Latin-ASCII; [\u0080-\u7fff] remove';
37+
protected static $_defaultTransliteratorId = 'Any-Latin; Latin-ASCII; [\u0080-\u7fff] remove';
4038

4139
/**
4240
* Default html tags who must not be count for truncate text.
@@ -1061,85 +1059,66 @@ public static function parseFileSize($size, $default = false)
10611059
}
10621060

10631061
/**
1064-
* Get default transliterator identifier string.
1062+
* Get the default transliterator.
10651063
*
1066-
* @deprecated 3.7.0 Use getTransliterator() instead.
1067-
* @return string Transliterator identifier.
1064+
* @return \Transliterator|null Either a Transliterator instance, or `null`
1065+
* in case no transliterator has been set yet.
1066+
* @since 3.7.0
10681067
*/
1069-
public static function getTransliteratorId()
1068+
public static function getTransliterator()
10701069
{
1071-
deprecationWarning(
1072-
'Text::getTransliteratorId() is deprecated. ' .
1073-
'Use Text::getTransliterator() instead.'
1074-
);
1075-
1076-
return static::getTransliterator();
1070+
return static::$_defaultTransliterator;
10771071
}
10781072

10791073
/**
1080-
* Set default transliterator identifier string.
1074+
* Set the default transliterator.
10811075
*
1082-
* @deprecated 3.7.0 Use setTransliterator() instead.
1083-
* @param string $transliteratorId Transliterator identifier.
1076+
* @param \Transliterator $transliterator A `Transliterator` instance.
10841077
* @return void
1078+
* @since 3.7.0
10851079
*/
1086-
public static function setTransliteratorId($transliteratorId)
1080+
public static function setTransliterator(\Transliterator $transliterator)
10871081
{
1088-
deprecationWarning(
1089-
'Text::setTransliteratorId() is deprecated. ' .
1090-
'Use Text::setTransliterator() instead.'
1091-
);
1092-
1093-
static::setTransliterator($transliteratorId);
1082+
static::$_defaultTransliterator = $transliterator;
10941083
}
10951084

10961085
/**
1097-
* Get the default transliterator.
1086+
* Get default transliterator identifier string.
10981087
*
1099-
* @return \Transliterator|string Either a Transliterator instance, or a
1100-
* transliterator identifier string.
1101-
* @since 3.7.0
1088+
* @return string Transliterator identifier.
11021089
*/
1103-
public static function getTransliterator()
1090+
public static function getTransliteratorId()
11041091
{
1105-
return static::$_defaultTransliterator;
1092+
return static::$_defaultTransliteratorId;
11061093
}
11071094

11081095
/**
11091096
* Set default transliterator identifier string.
11101097
*
1111-
* @param \Transliterator|string $transliterator Either a Transliterator
1112-
* instance, or a transliterator identifier string.
1098+
* @param string $transliteratorId Transliterator identifier.
11131099
* @return void
1114-
* @since 3.7.0
11151100
*/
1116-
public static function setTransliterator($transliterator)
1101+
public static function setTransliteratorId($transliteratorId)
11171102
{
1118-
static::$_defaultTransliterator = $transliterator;
1103+
static::setTransliterator(transliterator_create($transliteratorId));
1104+
static::$_defaultTransliteratorId = $transliteratorId;
11191105
}
11201106

11211107
/**
11221108
* Transliterate string.
11231109
*
11241110
* @param string $string String to transliterate.
11251111
* @param \Transliterator|string|null $transliterator Either a Transliterator
1126-
* instance, or a transliterator identifier string. If `null`
1127-
* `Text::$_defaultTransliterator` will be used.
1112+
* instance, or a transliterator identifier string. If `null`, the default
1113+
* transliterator (identifier) set via `setTransliteratorId()` or
1114+
* `setTransliterator()` will be used.
11281115
* @return string
11291116
* @see https://secure.php.net/manual/en/transliterator.transliterate.php
11301117
*/
11311118
public static function transliterate($string, $transliterator = null)
11321119
{
11331120
if (!$transliterator) {
1134-
if (static::$_defaultTransliteratorId !== null) {
1135-
deprecationWarning(
1136-
'`Text::$_defaultTransliteratorId` is deprecated. ' .
1137-
'Use `Text::$_defaultTransliterator` instead.'
1138-
);
1139-
$transliterator = static::$_defaultTransliteratorId;
1140-
} else {
1141-
$transliterator = static::$_defaultTransliterator;
1142-
}
1121+
$transliterator = static::$_defaultTransliterator ?: static::$_defaultTransliteratorId;
11431122
}
11441123

11451124
return transliterator_transliterate($transliterator, $string);
@@ -1152,18 +1131,19 @@ public static function transliterate($string, $transliterator = null)
11521131
* ### Options:
11531132
*
11541133
* - `replacement`: Replacement string. Default '-'.
1155-
* - `transliterator`: A Transliterator instance, or a transliterator id string.
1156-
* If `null` (default) `Text::$_defaultTransliterator` will be used.
1134+
* - `transliteratorId`: A valid transliterator id string.
1135+
* If `null` (default) the transliterator (identifier) set via
1136+
* `setTransliteratorId()` or `setTransliterator()` will be used.
11571137
* If `false` no transliteration will be done, only non words will be removed.
1158-
* - `transliteratorId`: Deprecated as of 3.7.0, use the `transliterator` option
1159-
* instead.
11601138
* - `preserve`: Specific non-word character to preserve. Default `null`.
11611139
* For e.g. this option can be set to '.' to generate clean file names.
11621140
*
11631141
* @param string $string the string you want to slug
11641142
* @param array $options If string it will be use as replacement character
11651143
* or an array of options.
11661144
* @return string
1145+
* @see setTransliterator()
1146+
* @see setTransliteratorId()
11671147
*/
11681148
public static function slug($string, $options = [])
11691149
{
@@ -1172,19 +1152,12 @@ public static function slug($string, $options = [])
11721152
}
11731153
$options += [
11741154
'replacement' => '-',
1175-
'transliterator' => null,
1155+
'transliteratorId' => null,
11761156
'preserve' => null
11771157
];
11781158

1179-
if (array_key_exists('transliteratorId', $options)) {
1180-
deprecationWarning(
1181-
'The `transliteratorId` option is deprecated. ' .
1182-
'Use `transliterator` instead.'
1183-
);
1184-
$options['transliterator'] = $options['transliteratorId'];
1185-
}
1186-
if ($options['transliterator'] !== false) {
1187-
$string = static::transliterate($string, $options['transliterator']);
1159+
if ($options['transliteratorId'] !== false) {
1160+
$string = static::transliterate($string, $options['transliteratorId']);
11881161
}
11891162

11901163
$regex = '^\s\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}';

0 commit comments

Comments
 (0)