من یک تابع برای اینکه اسلاگ زمانی که فارسی هست تبدیل به یک رشته بی معنی با حروف انگلیسی نشه داخل sluggable.php در کانفیک نوشتم اما در هنگام کش کردن این اخطارو دریافت میکنم:
your configuration files are not serializable
راه حل دیگه ای نیست؟ داخل توضیحات پکیج هم نوشته میشه یک فانکشن سفارشی نوشت اما این اخطارو چطور میشه رفع کرد؟
فانکشن هم این هست :
'method' => function($string, $separator = '-') {
$_transliteration = ["/ö|œ/" => "e",
"/ü/" => "e",
"/Ä/" => "e",
"/Ü/" => "e",
"/Ö/" => "e",
"/À|Á|Â|Ã|Å|Ǻ|Ā|Ă|Ą|Ǎ/" => "",
"/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/" => "",
"/Ç|Ć|Ĉ|Ċ|Č/" => "",
"/ç|ć|ĉ|ċ|č/" => "",
"/Ð|Ď|Đ/" => "",
"/ð|ď|đ/" => "",
"/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/" => "",
"/è|é|ê|ë|ē|ĕ|ė|ę|ě/" => "",
"/Ĝ|Ğ|Ġ|Ģ/" => "",
"/ĝ|ğ|ġ|ģ/" => "",
"/Ĥ|Ħ/" => "",
"/ĥ|ħ/" => "",
"/Ì|Í|Î|Ï|Ĩ|Ī| Ĭ|Ǐ|Į|İ/" => "",
"/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/" => "",
"/Ĵ/" => "",
"/ĵ/" => "",
"/Ķ/" => "",
"/ķ/" => "",
"/Ĺ|Ļ|Ľ|Ŀ|Ł/" => "",
"/ĺ|ļ|ľ|ŀ|ł/" => "",
"/Ñ|Ń|Ņ|Ň/" => "",
"/ñ|ń|ņ|ň|ʼn/" => "",
"/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/" => "",
"/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/" => "",
"/Ŕ|Ŗ|Ř/" => "",
"/ŕ|ŗ|ř/" => "",
"/Ś|Ŝ|Ş|Ș|Š/" => "",
"/ś|ŝ|ş|ș|š|ſ/" => "",
"/Ţ|Ț|Ť|Ŧ/" => "",
"/ţ|ț|ť|ŧ/" => "",
"/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/" => "",
"/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/" => "",
"/Ý|Ÿ|Ŷ/" => "",
"/ý|ÿ|ŷ/" => "",
"/Ŵ/" => "",
"/ŵ/" => "",
"/Ź|Ż|Ž/" => "",
"/ź|ż|ž/" => "",
"/Æ|Ǽ/" => "E",
"/ß/" => "s",
"/IJ/" => "J",
"/ij/" => "j",
"/Œ/" => "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);
},
@hesammousavi بله زمانی که این فانکشن رو میذارم اخطار هست،کش کردن تنظیمات اینطور که گفتند برای عملکرد بهترو سریعتر خوبه انجام داد.
نظر شما چیه مشکلی نداره احیانا اگر جایی لازم باشم مثلا config:cache کنم؟ شماهم از همین پکیج استفاده می کنید؟ پکیجی دیگه ای با همین عملکرد خوب که زبان فارسی هم پشتیبانی کنه در ذهن ندارید؟
بله این قضیه اگر خواسته باشید از زبان فارسی پشتیبانی بکنه وجود داره و صحبت های نسبتا زیادی هم راجع بهش شده... یکسری به لینک های زیر اگر بزنید شاید پاسختون رو پیدا کنید:
https://roocket.ir/discuss/%D9%85%D8%B4%DA%A9%D9%84-Your-configuration-files-are-not-serializable
https://stackoverflow.com/questions/60442091/laravel-php-artisan-optimize-command-return-not-serializable-error
این لینک ها هم دقیقا مربوط به همین قضیه هست که در issue های گیت هاب این پکیج بهش اشاره شده و چند راه حل هم براش بیان شده:
https://github.com/cviebrock/eloquent-sluggable/issues/491
https://github.com/cviebrock/eloquent-sluggable/issues/392
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟