У меня в sluggble есть функция Closure
. php конфигурация в laravel (7).
config \ sluggable. php (cviebrock / eloquent- sluggable package)
'method' => function($string, $separator = '-') {
$_transliteration = ["/ö|œ/" => "e",
"/ü/" => "e",
"/Ä/" => "e",
"/Ü/" => "e",
"/Œ/" => "E",
"/ƒ/" => ""];
$quotedReplacement = preg_quote($separator, '/');
$merge = [
'/[^\s\p{Zs}\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]/mu' => ' ',
'/[\s\p{Zs}]+/mu' => $separator,
sprintf('/^[%s]+|[%s]+$/', $quotedReplacement, $quotedReplacement) => '',
];
$map = $_transliteration + $merge;
unset($_transliteration);
return preg_replace(array_keys($map), array_values($map), $string);
},
Он работает в моем проекте , но я получаю php artisan optimize command return 'not serializable'
ошибку, когда хочу обналичить его.
Я пытаюсь определить __invoke()
метод устранения ошибки.
Я пробую это:
'method' => (new class {
public function __invoke($string = '', $separator = '-')
{
$_transliteration = ["/ö|œ/" => "e",
"/ü/" => "e",
...
return preg_replace(array_keys($map), array_values($map), $string);
}
})(),
с этим кодом ошибка исчезла, но метод не работает в моем проекте .
в чем я виноват?