脚本 @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运行