حسین مسعودی
3 سال پیش توسط حسین مسعودی مطرح شد
3 پاسخ

اخطار کلوژر در sluggable

من یک تابع برای اینکه اسلاگ زمانی که فارسی هست تبدیل به یک رشته بی معنی با حروف انگلیسی نشه داخل 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 3 سال پیش مطرح شد
0

زمانی که این رو وارد میکنید فقط اون ارور داده میشه ؟
خوب کش نکنید تنظیمات رو


حسین مسعودی
@eminemstaystrong 3 سال پیش مطرح شد
0

@hesammousavi بله زمانی که این فانکشن رو میذارم اخطار هست،کش کردن تنظیمات اینطور که گفتند برای عملکرد بهترو سریعتر خوبه انجام داد.
نظر شما چیه مشکلی نداره احیانا اگر جایی لازم باشم مثلا config:cache کنم؟ شماهم از همین پکیج استفاده می کنید؟ پکیجی دیگه ای با همین عملکرد خوب که زبان فارسی هم پشتیبانی کنه در ذهن ندارید؟


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش آپدیت شد
0

بله این قضیه اگر خواسته باشید از زبان فارسی پشتیبانی بکنه وجود داره و صحبت های نسبتا زیادی هم راجع بهش شده... یکسری به لینک های زیر اگر بزنید شاید پاسختون رو پیدا کنید:
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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام