علیرضا
2 سال پیش توسط علیرضا مطرح شد
7 پاسخ

ارور مربوط به کانفیگ در لاراول

درود بر دوستان بنده وقتی دستور
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()

ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 2 سال پیش مطرح شد
1

سلام
اگر داخل یکی از فایل های 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 = '-') {
        //...
    }

}

مهدی اردشیر
تخصص : یه برنامه نویس
@mehdi0121 2 سال پیش مطرح شد
0

سلام یه بار
config:clear
بزن تا کانفیگ قبلی پاک بشه
بعدش تست کن
لینک زیر هم میتونه کمکت کنه
https://stackoverflow.com/questions/52065513/your-configuration-files-are-not-serializable


علیرضا
تخصص : در حال یادگیری لاراول
@alirezamoghadam3180 2 سال پیش مطرح شد
0

@mehdi0121 سپاس اینکارو کردم اما همچنان تفاوتی نکرد لینک زیر انجام دادم اما بازم تفاوتی نکردد


علیرضا
تخصص : در حال یادگیری لاراول
@alirezamoghadam3180 2 سال پیش مطرح شد
0

داخل کانفیگ یه پکیجی داشتم که پاک کردم و provider ش هم برداشتم بعد یه پکیج دیگه اضافه کردم که زدم اینجوری شد! @mehdi0121


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 2 سال پیش مطرح شد
1

سلام
اگر داخل یکی از فایل های 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 = '-') {
        //...
    }

}

علیرضا
تخصص : در حال یادگیری لاراول
@alirezamoghadam3180 2 سال پیش مطرح شد
0

@mhyeganeh سپاس از شما والا مهندس من پکیج اسلاگبل دارم اما سرچ که می کنم داخل کانفیگ و اپ وجود نداره
اصلا نمی دونم باید چکار کنم


فرشید مرادی
تخصص : noob
@eniack 2 سال پیش مطرح شد
1

سلام ، این پیوند رو ببینید


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

اگر پکیجی که گفتم رو دارید باید داخل پوشه config یک فایلی هم داشته باشید به نم sluggable.php
اگر نداشتید با استفاده از دستور زیر می‌تونید ایجادش کنید:

php artisan vendor:publish --provider="Cviebrock\EloquentSluggable\ServiceProvider"

مرحله دوم و برای حل مشکل کش کردن کانفیگ هاتون یک جستجوی کامل داخل دایرکتوری config اجرا کنید و عبارت function رو جستجو کنید. هر جایی که به کار رفته بود باید بازنویسی و اصلاح بشه تا این ارورتون برطرف بشه.


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

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