脚本 @php artisan package:discover 处理返回的 post-autoload-dump 事件,错误代码为 255

Posted

技术标签:

【中文标题】脚本 @php artisan package:discover 处理返回的 post-autoload-dump 事件,错误代码为 255【英文标题】:Script @php artisan package:discover handling the post-autoload-dump event returned with error code 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之类的东西可以发现 【参考方案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

【讨论】:

谢谢,这是升级时的正确答案,如升级指南中所说:laravel.com/docs/7.x/upgrade#symfony-5-related-upgrades 这对我也有用。谢谢。我从 laravel 6 升级到 laravel 7。【参考方案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,我收到了这个错误。

所以我的修复是

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

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

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

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

"autoload": 
    "psr-4": 
        "App\\": "app/",
        "Database\\Factories\\": "database/factories/",
        "Database\\Seeders\\": "database/seeders/"
    
,
    最后从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

现在完美运行

【讨论】:

以上是关于脚本 @php artisan package:discover 处理返回的 post-autoload-dump 事件,错误代码为 255的主要内容,如果未能解决你的问题,请参考以下文章

脚本 @php artisan package:discover 处理返回的 post-autoload-dump 事件,错误代码为 255

脚本 php artisan 优化处理使用 laravel 5.4 返回的 post-update-cmd 事件,错误代码为 1

脚本 php artisan clear-compiled 处理 pre-update-cmd 事件返回错误(Laravel 4.1 升级)

php artisan serve - 如何让mysql运行

Laravel artisan 命令 - 更改脚本中的选项?

Laravel:php artisan key:generate三种报错解决方案,修改默认PHP版本(宝塔面板)