【发布时间】:2020-07-06 15:58:06
【问题描述】:
我有一个使用 Forge 部署的 Laravel 项目,并使用 Forge 启用了 OPCache。上周我注意到,当我推送一些更改时,视图和控制器中的更改存在于服务器上,但我运行的自定义工匠命令无法识别更新。
换句话说,对刀片的更新会显示在屏幕上。我添加到控制器的更新正在改变信息传递到刀片文件的方式,但是我有一个自定义的工匠命令,它在一个特征中运行一系列方法。服务器上的实际文件显示了我推送的新方法,但是当我在 CLI 中运行 artisan 命令时,它说找不到该方法。
我已经无数次停止、重新启动和重新加载 OPCache。我已经重新启动了 Nginx。我已禁用 OPCache 并重新启动 PHP。还是说找不到方法。有人有什么想法吗?
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Traits\FTPImportsTrait;
class CheckFTPImports extends Command
{
use FTPImportsTrait;
protected $signature = 'checkForImports';
protected $description = 'Check for imports...';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$this->checkBankImports();
}
}
-----------
<?php
namespace App\Traits;
trait FTPImportsTrait;
{
public function checkBankImports()
{
dd('YOU ARE NOT CRAZY');
}
}
$ php artisan checkForImports
$ 方法 checkBankImports 不存在。
更新:
这一定是服务器上的某种配置问题。我刚刚将该项目部署到一个新的 DO 液滴上,并且该命令按预期工作。
【问题讨论】:
-
也许:
php artisan clear-compiled?因为在生产中php artisan optimize可能会一起编译所有文件 -
你是一个救生员。 php artisan clear-compiled 工作正常。
-
太棒了。现在自己写下你的问题的答案,并得到同样陷入同样境地的人的支持。
-
说真的,谢谢!
-
还将标题更改为更相关:
Laravel console command trait method not found
标签: php laravel nginx opcache laravel-forge