laravel config sluggable: php команда artisan optimize return 'not serializable' - PullRequest
1 голос
/ 26 мая 2020

У меня в 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);
           }
         })(),

с этим кодом ошибка исчезла, но метод не работает в моем проекте .

в чем я виноват?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...