laravel - “Laravel 'artisan' 命令不产生任何输出”......一个有趣的发现可能解释出了什么问题
问题描述
php artisan
我一直在努力解决命令不产生输出的问题(Windows 10 上的 Laravel 5.2 ...) 。我最终通过创建一个artisan2
文件来开始调试,该文件打印正在进行的消息,并用于try..except
尝试捕获任何错误。好吧,首先我发现了这个:
php artisan2 -V
跑到$kernel
对象试图运行命令的地方,然后退出。不抛出异常;程序只是停止,从未从方法调用返回。但是……哈利路亚!...php7 artisan2 -V
产生了追溯!(区别在于 PHP-5 与 7。)
Exception Caught! It is: 'Class log does not exist'
#0 \vendor\laravel\framework\src\Illuminate\Container\Container.php(734): ReflectionClass->__construct('log')
#1 \vendor\laravel\framework\src\Illuminate\Container\Container.php(629): Illuminate\Container\Container->build('log', Array)
#2 \vendor\laravel\framework\src\Illuminate\Foundation\Application.php(697): Illuminate\Container\Container->make('log', Array)
#3 \vendor\laravel\framework\src\Illuminate\Container\Container.php(849): Illuminate\Foundation\Application->make('log')
#4 \vendor\laravel\framework\src\Illuminate\Container\Container.php(804): Illuminate\Container\Container->resolveClass(Object(ReflectionParameter))
#5 \vendor\laravel\framework\src\Illuminate\Container\Container.php(774): Illuminate\Container\Container->getDependencies(Array, Array)
#6 \vendor\laravel\framework\src\Illuminate\Container\Container.php(629): Illuminate\Container\Container->build('App\Exceptions\...', Array)
#7 \vendor\laravel\framework\src\Illuminate\Foundation\Application.php(697): Illuminate\Container\Container->make('App\Exceptions\...', Array)
#8 \vendor\laravel\framework\src\Illuminate\Container\Container.php(230): Illuminate\Foundation\Application->make('App\Exceptions\...', Array)
#9 \vendor\laravel\framework\src\Illuminate\Container\Container.php(731): Illuminate\Container\Container->Illuminate\Container{closure}(Object(Illuminate\Foundation\Application), Array)
#10 \vendor\laravel\framework\src\Illuminate\Container\Container.php(629): Illuminate\Container\Container->build(Object(Closure), Array)
#11 \vendor\laravel\framework\src\Illuminate\Foundation\Application.php(697): Illuminate\Container\Container->make('Illuminate\Cont...', Array)
#12 \vendor\laravel\framework\src\Illuminate\Container\Container.php(1178): Illuminate\Foundation\Application->make('Illuminate\Cont...')
#13 \vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(261): Illuminate\Container\Container->offsetGet('Illuminate\Cont...')
#14 \vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(117): Illuminate\Foundation\Console\Kernel->reportException(Object(Symfony\Component\Debug\Exception\FatalThrowableError))
#15 \artisan2(42): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 {main}
在我看来,Laravel 已经做了一些事情来抑制错误回溯,大概是为了让它可以发送到记录器……但它不能创建日志记录类……所以它根本不会产生任何东西。
现在,我还不知道为什么 Class log does not exist
在这个项目上,当它确实存在时(即“artisan
命令运行......”)在一个空白的新项目上。我希望有人能快速告诉我可能会有什么不同。 这应该如何工作?Laravel 如何自动构建该类?
尽管如此,这一发现可能会解释为什么该artisan
命令可以“退出而不产生任何输出”,正如我们在过去几年中不同时间在 SO 上看到的那样。
解决方案
嗯......我从来没有弄清楚为什么这对我的特定(旧......)项目不起作用,但我确实发现运行composer install
(不是update
)使问题消失。而且,在这一点上,对我来说真正唯一重要的是它最终确实消失了。我真的不知道发生了什么变化composer
,所以突然artisan
又开始工作了。
(我还发现有必要在我的环境中明确指定 PHP-7。)
推荐阅读
- angular - Apollo - Angular 应用程序中子组件的多个 graphql 订阅
- node.js - How to upload file from the back-end to another back-end?
- r - 创建列表,它是 R 中两个命名列表的组合
- linux - logrotate 是如何工作的
- android - Android API 31(版本 12)只有 64 位版本?
- audio - 什么是 BinaryIO?
- reactjs - AWS Amplify 和 Next.JS with GraphQL Server Error No current user from getStaticPaths
- javascript - npm 错误!启动 Angular 前端应用程序时
- swift - 如何为捆绑包设置主体类
- tensorflow2.0 - 将 Sugartensor 库转换为 Tensorflow 2