【问题标题】:How to resolve l5-swagger issue -"Trying to access array offset on value of type bool" in php 7.4?如何解决 php 7.4 中的 l5-swagger 问题 - “尝试访问 bool 类型值的数组偏移量”?
【发布时间】:2019-12-03 06:48:08
【问题描述】:

我正在使用 php 版本 7.2,但现在升级到 7.4 在生成 l5-swagger 时出现问题。 我读了这个stackoverflow qauestion,它对我不起作用。

php artisan l5-swagger:generate
Regenerating docs

   ErrorException  : Trying to access array offset on value of type bool

  at /home/smartmobe/Projects/defence-new/server/vendor/zircote/swagger-php/src/StaticAnalyser.php:37
    33|             if (empty($GLOBALS['swagger_opcache_warning'])) {
    34|                 $GLOBALS['swagger_opcache_warning'] = true;
    35|                 $status = opcache_get_status();
    36|                 $config = opcache_get_configuration();
  > 37|                 if ($status['opcache_enabled'] && $config['directives']['opcache.save_comments'] == false) {
    38|                     Logger::warning("php.ini \"opcache.save_comments = 0\" interferes with extracting annotations.\n[LINK] http://php.net/manual/en/opcache.configuration.php#ini.opcache.save-comments");
    39|                 }
    40|             }
    41|         }

  Exception trace:

  1   Illuminate\Foundation\Bootstrap\HandleExceptions::handleError()
      /home/smartmobe/Projects/defence-new/server/vendor/zircote/swagger-php/src/StaticAnalyser.php:37

  2   Swagger\StaticAnalyser::fromFile()
      /home/smartmobe/Projects/defence-new/server/vendor/zircote/swagger-php/src/functions.php:41

  Please use the argument -v to see more details.

【问题讨论】:

  • 你能检查一下 zircote/swagger-php 是否有版本 >= 3.0.3
  • 我当前的 zircote/swagger-php 版本是 2.0.14。

标签: php swagger laravel-6 swagger-php php-7.4


【解决方案1】:

zircote/swagger-php(发生异常的包)已更新为支持 PHP 7.4 版本 3.0.3。如果您使用 Composer,您可以使用 composer info zircote/swagger-php 检查项目中软件包的当前版本,您可以使用 composer update 更新它。

如果composer update 不起作用,您需要检查您的composer.json 是否允许darkaonline/l5-swagger 的版本高于5.6.1,因为它才开始支持zircote/swagger-php:3 .* 从5.6.2 向上。

【讨论】:

  • 我目前有:darkaonline/l5-swagger 6.0.3 Swagger 与 Laravel 5 的集成
  • 我更新作曲家设置:“zircote/swagger-php”:“3.0.3”,
  • 你运行composer update了吗?所以你现在不应该再遇到异常了。
  • 作曲家更新不起作用,我当前的“darkaonline/l5-swagger”版本是“6.0.*”。更新后显示以下错误: Symfony\Component\Debug\Exception\FatalThrowableError : Call to undefined function Swagger\scan() at /home/smartmobe/Projects/defence-new/server/vendor/darkaonline/l5-swagger/src/ Generator.php:124
【解决方案2】:

对于 Laravel >= 8 和最新版本的 L5-Swagger,你不需要扩展你需要在 l5-swagger.php 配置文件(documentations/defaults/routes/middleware/api)中添加 web 中间件的路由;

【讨论】:

    猜你喜欢
    • 2020-04-27
    • 2020-10-17
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 2020-10-03
    相关资源
    最近更新 更多