【问题标题】:Script @php artisan package:discover handling the post-autoload-dump event returned with error code 255脚本 @php artisan package:discover 处理返回的 post-autoload-dump 事件,错误代码为 255
【发布时间】:2018-11-23 06:08:24
【问题描述】:

我将我的项目从办公桌转移到另一个。
当我运行php artisan 时它不起作用。

我尝试运行composer update,但它返回错误

Script @php artisan package:discover 处理返回的自动加载转储后事件,错误代码为 255

【问题讨论】:

  • 对我来说这是由文件夹权限引起的。 chown -R u:g 和 chmod -R 755 为我完成了这项工作。
  • 这是一个特质的问题,但无论如何我都找不到,使用packagist.org/packages/nunomaduro/larastan之类的东西可以发现

标签: php laravel laravel-5 console command


【解决方案1】:

这是我从 laravel 版本 6.x - 7.x 升级后解决此问题的方法:

App\Exceptions\Handler 里改了

//Use Exception;
Use Throwable;

然后接受Throwable而不是Exceptions实例的方法如下:

//public function report(Exception$exception);
public function report(Throwable $exception);

//public function render($request, Exception $exception);
public function render($request, Throwable $exception);

config\session.php:

//'secure' => env('SESSION_SECURE_COOKIE', false),
'secure' => env('SESSION_SECURE_COOKIE', null),

然后运行composer update

【讨论】:

【解决方案2】:

我是这样解决问题的:

cd bootstrap/cache/
rm -rf *.php

bootstrap 目录包含初始化结构的 app.php 文件。该目录还包含一个缓存目录,其中包含用于性能优化的结构生成文件,例如文件和路由缓存服务。 Laravel 存储配置文件、提供程序和缓存服务以优化对这些信息的获取。我的问题是当其他开发人员在你的机器上运行 'php artisan config: cache' 命令时,由于缓存文件夹包含可以删除的文件,我删除它们并解决了问题。

【讨论】:

  • 这将有助于解释这是什么以及为什么它解决了问题
  • bootstrap 目录包含初始化结构的 app.php 文件。该目录还包含一个缓存目录,其中包含用于性能优化的结构生成文件,例如文件和路由缓存服务。 Laravel 存储配置文件、提供程序和缓存服务以优化对这些信息的获取。我的问题是当其他开发人员在你的机器上运行 'php artisan config: cache' 命令时,由于缓存文件夹包含可以删除的文件,我删除它们并解决了问题。
  • 不要运行这个!这是一个非常危险的命令!例如,如果他不在项目根目录下,cd 会失败,但rm 命令会执行!以rm -rf bootstrap/cache/*cd bootstrap/cache && rm -rf *php 的形式运行它
【解决方案3】:

如果这发生在 Laravel 从 6.x 更新到 7.x 之后,那么这可能是由于 Symfony 的更新。参见本部分的升级指南: https://laravel.com/docs/7.x/upgrade#symfony-5-related-upgrades

【讨论】:

  • 感谢您发布此内容,错过了升级指南的这一部分并被抓住了。
  • 这是修复
【解决方案4】:

这是因为你已经升级到 Laravel 7。

要修复它,请像这样更新app/Exceptions/Handler.php

<?php

namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable; // <-- ADD THIS

class Handler extends ExceptionHandler
{
    public function report(Throwable $exception) // <-- USE Throwable HERE
    {
        parent::report($exception);
    }
    public function render($request, Throwable $exception) // AND HERE
    {
        return parent::render($request, $exception);
    }
}

这在官方升级指南here中有记录:

https://laravel.com/docs/7.x/upgrade#symfony-5-related-upgrades

【讨论】:

  • 我的是 Handler.php 中缺少的括号,所以谢谢
【解决方案5】:

我是upgrading my Laravel from 5.8 to 8.0,我收到了这个错误。

所以我的修复是

  1. 正如@nobuhiroharada 提到我在我的项目中错过了.env 文件

  2. 其次是 Laravel 删除了 Exception 并用 Throwable 替换它。所以我们需要在app\Exceptions\Handler.php 中解决这个问题。可以参考Medium.com 进行错误修复。

  3. Laravel 8.x的升级指南中需要更新依赖like this

  4. 接下来,在您的 composer.json 文件中,从自动加载部分中删除类映射块并添加新的命名空间类目录映射:

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "Database\\Factories\\": "database/factories/",
        "Database\\Seeders\\": "database/seeders/"
    }
},
  1. 最后从bootstrap\cache删除缓存文件并运行composer update

这 5 个步骤可能会帮助您消除您在 Laravel 项目中遇到的错误。

【讨论】:

    【解决方案6】:

    我在Win 8中遇到了同样的问题并解决了:

    这是步骤。

    第一步:进入你的项目目录

    第二步:然后输入命令cd bootstrap/cache/

    第三步:再次输入命令del -rf *.php

    第 4 步:更新您的作曲家composer update

    第 5 步:现在您已完成:php artisan serve

    谢谢。

    【讨论】:

      【解决方案7】:

      您的新项目中有 .env 文件吗?

      我有同样的错误信息。当我添加 .env 文件时,错误消失了。

      这样的成功消息。

      Generating optimized autoload files
      > Illuminate\Foundation\ComposerScripts::postAutoloadDump
      > @php artisan package:discover
      Discovered Package: fideloper/proxy
      Discovered Package: ixudra/curl
      Discovered Package: laravel/tinker
      Discovered Package: nesbot/carbon
      Discovered Package: socialiteproviders/manager
      Package manifest generated successfully.
      

      希望对你有所帮助。

      【讨论】:

        【解决方案8】:

        您的项目代码中可能有错误(例如,在路由或控制器中)。这可能是导致此错误的原因之一。

        在我的项目中,web.php 文件有语法错误。我在启动 php artisan 命令时定义了这个

        C:\OSPanel\domains\lara.shop.loc>php artisan
        In web.php line 
          syntax error, unexpected end of file  
        

        【讨论】:

          【解决方案9】:

          当我将 laravel 从 6.x 更新到 7.x 时出现同样的问题

          我尝试了投票最多的答案,但没有成功,然后我使用了php artisan serve 我注意到:

          RuntimeException
          
          In order to use the Auth::routes() method, please install the laravel/ui package.
          

          试试composer require laravel/ui也许会奏效。

          【讨论】:

            【解决方案10】:

            我通过删除供应商表然后运行composer update解决了这个错误。我正在使用 Laravel 7。因此,如果您没有从旧 Laravel 版本更新,也许这就是解决方案。

            【讨论】:

              【解决方案11】:

              我在 Laravel 项目中运行 composer update 时遇到了同样的问题。在 package.json 中,它被配置为运行 artisan package:discover,但失败:

              Class 'Symfony\Component\Translation\Translator' not found in vendor/nesbot/carbon/src/Carbon/Translator.php on line 18

              当我查看vendor/symfony/translation 目录时,我发现它完全是空的,这解释了错误。

              解决办法是彻底删除vendor目录,然后重新运行composer update。这是我能够让 composer 安装丢失的文件的唯一方法。

              【讨论】:

                【解决方案12】:

                我删除了 composer.lock 文件并运行了 composer update。

                解决了我的问题

                【讨论】:

                  【解决方案13】:

                  这不是实际错误。如果你往上看一点,你会看到实际的错误。 就我而言,我的代码中有一个错误:

                  PHP Fatal error:  Declaration of 
                  App\Exceptions\Handler::render($request, App\Exceptions\Exception $exception)
                  must be compatible with 
                  Illuminate\Foundation\Exceptions\Handler::render($request, Throwable $e)
                  

                  无法告诉您代码中的实际问题是什么,因此您必须在堆栈跟踪中查看此错误的真正原因。

                  【讨论】:

                    【解决方案14】:

                    没有任何效果。于是我安装了一个新项目,在App\Exceptions中读取了Handler.php,结果不一样,可能是我复制了一些解决方案和上网,删除了以下内容:

                    protected $dontReport = [
                        //
                    ];
                    
                    protected $dontFlash = [
                        'password',
                        'password_confirmation',
                    ];
                    

                    我在这里复制所有由 laravel 7.5 生成的 Handler.php,可能对某人有用:

                    <?php
                    
                    namespace App\Exceptions;
                    
                    use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
                    use Throwable;
                    
                    class Handler extends ExceptionHandler
                    {
                        /**
                         * A list of the exception types that are not reported.
                         *
                         * @var array
                         */
                        protected $dontReport = [
                            //
                        ];
                    
                    /**
                     * A list of the inputs that are never flashed for validation exceptions.
                     *
                     * @var array
                     */
                    protected $dontFlash = [
                        'password',
                        'password_confirmation',
                    ];
                    
                    /**
                     * Report or log an exception.
                     *
                     * @param  \Throwable  $exception
                     * @return void
                     *
                     * @throws \Exception
                     */
                    public function report(Throwable $exception)
                    {
                        parent::report($exception);
                    }
                    
                    /**
                     * Render an exception into an HTTP response.
                     *
                     * @param  \Illuminate\Http\Request  $request
                     * @param  \Throwable  $exception
                     * @return \Symfony\Component\HttpFoundation\Response
                     *
                     * @throws \Throwable
                     */
                    public function render($request, Throwable $exception)
                    {
                        return parent::render($request, $exception);
                    }
                    

                    }

                    【讨论】:

                      【解决方案15】:

                      大家好/你好世界。我这样解决了我的问题:


                      我删除了我的项目我创建了一个新文件夹并再次克隆了存储库,然后我给了作曲家安装/更新

                      祝你好运。

                      【讨论】:

                        【解决方案16】:

                        在我的情况下,缺少文件夹及其文件Kernel.php in

                        应用程序/控制台

                        所以我使用之前项目中的代码创建了app/Console/Kernel.php。 现在一切正常。

                        【讨论】:

                          【解决方案17】:

                          确保您的config\constants.php(和/或resources\lang\en\local.php)没有语法错误。 constants.php 文件中缺少逗号,我经常收到此错误。

                          【讨论】:

                            【解决方案18】:

                            当我的 Composer 版本 2.x 然后我回滚时收到此错误

                            composer self-update --1
                            

                            现在完美运行

                            【讨论】:

                              猜你喜欢
                              • 2019-03-29
                              • 2023-03-16
                              • 1970-01-01
                              • 2019-05-28
                              • 2020-05-27
                              • 2021-12-22
                              • 2020-04-24
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多