درود بر دوستان بنده وقتی دستور
php artisan config:cache میزنم این ارور میده دلیلشو نمی دونم!
Your configuration files are not serializable.
at C:\Users\aseman\Desktop\AryaBMS\vendor\laravel\framework\src\Illuminate\Foundation\Console\ConfigCacheCommand.php:71
67▕ require $configPath;
68▕ } catch (Throwable $e) {
69▕ $this->files->delete($configPath);
70▕
➜ 71▕ throw new LogicException('Your configuration files are not serializable.', 0, $e);
72▕ }
73▕
74▕ $this->info('Configuration cached successfully!');
75▕ }
1 C:\Users\aseman\Desktop\AryaBMS\bootstrap\cache\config.php:1139
Error::("Call to undefined method Closure::__set_state()")
2 C:\Users\aseman\Desktop\AryaBMS\vendor\laravel\framework\src\Illuminate\Foundation\Console\ConfigCacheCommand.php:67
require()
سلام
اگر داخل یکی از فایل های config تون فانکشن تعریف کرده باشید باعث بوجود اومدن این ارور میشه. مثلا یکی از رایج ترین شرایط استفاده از پکیج cviebrock/eloquent-sluggable برای ساخت slug های فارسی هست و اگر طبق بسیاری از آموزش ها مقدار method رو برابر فانکشن تعریف کنید:
'method' => function($string, $separator = '-') {
//...
}),
موقع cache کردن با ارور Your configuration files are not serializable.
روبرو میشید که مفهوم و علتش هم مشخصه دیگه.
یکی از راهکار هاش این هست که دستور العمل ها رو از داخل config به یک کلاس یا helper یا service منتقل کنید و داخل فایل config بهش ارجاع بدید. مثلا اینجوری:
'method' => [\App\Services\SlugService::class, 'method'],
class SlugService {
public static function method($string, $separator = '-') {
//...
}
}
سلام یه بار
config:clear
بزن تا کانفیگ قبلی پاک بشه
بعدش تست کن
لینک زیر هم میتونه کمکت کنه
https://stackoverflow.com/questions/52065513/your-configuration-files-are-not-serializable
@mehdi0121 سپاس اینکارو کردم اما همچنان تفاوتی نکرد لینک زیر انجام دادم اما بازم تفاوتی نکردد
داخل کانفیگ یه پکیجی داشتم که پاک کردم و provider ش هم برداشتم بعد یه پکیج دیگه اضافه کردم که زدم اینجوری شد! @mehdi0121
سلام
اگر داخل یکی از فایل های config تون فانکشن تعریف کرده باشید باعث بوجود اومدن این ارور میشه. مثلا یکی از رایج ترین شرایط استفاده از پکیج cviebrock/eloquent-sluggable برای ساخت slug های فارسی هست و اگر طبق بسیاری از آموزش ها مقدار method رو برابر فانکشن تعریف کنید:
'method' => function($string, $separator = '-') {
//...
}),
موقع cache کردن با ارور Your configuration files are not serializable.
روبرو میشید که مفهوم و علتش هم مشخصه دیگه.
یکی از راهکار هاش این هست که دستور العمل ها رو از داخل config به یک کلاس یا helper یا service منتقل کنید و داخل فایل config بهش ارجاع بدید. مثلا اینجوری:
'method' => [\App\Services\SlugService::class, 'method'],
class SlugService {
public static function method($string, $separator = '-') {
//...
}
}
@mhyeganeh سپاس از شما والا مهندس من پکیج اسلاگبل دارم اما سرچ که می کنم داخل کانفیگ و اپ وجود نداره
اصلا نمی دونم باید چکار کنم
اگر پکیجی که گفتم رو دارید باید داخل پوشه config یک فایلی هم داشته باشید به نم sluggable.php
اگر نداشتید با استفاده از دستور زیر میتونید ایجادش کنید:
php artisan vendor:publish --provider="Cviebrock\EloquentSluggable\ServiceProvider"
مرحله دوم و برای حل مشکل کش کردن کانفیگ هاتون یک جستجوی کامل داخل دایرکتوری config اجرا کنید و عبارت function
رو جستجو کنید. هر جایی که به کار رفته بود باید بازنویسی و اصلاح بشه تا این ارورتون برطرف بشه.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟