尝试使用自定义外观导致Laravel中Application :: create()上的"调用未定义方法"?

Rea*_*ues 6 php laravel laravel-facade

我正在尝试为搜索功能创建自己的自定义外观,但我遇到了一些困难:

type: Symfony\Component\Debug\Exception\FatalErrorException
message: Call to undefined method Illuminate\Foundation\Application::create()
file: H:\myproj\vendor\laravel\framework\src\Illuminate\Container\Container.php
line: 165
Run Code Online (Sandbox Code Playgroud)

此错误是由我的代码命中引起的:

Search::indexObject(); 
Run Code Online (Sandbox Code Playgroud)

我的Search门面设置如下:

SearchServiceProvider

<?php
namespace MyProj\Search;

use Illuminate\Support\ServiceProvider;

class SearchServiceProvider extends ServiceProvider {

    public function register() {
        $this->app->bind('search', 'MyProj\Search\Search');
    }

}
Run Code Online (Sandbox Code Playgroud)

搜索门面

<?php
namespace MyProj\Facades;

use Illuminate\Support\Facades\Facade;

class Search extends Facade {
    public static function getFacadeAccessor() {
        return 'search';
    }
}
Run Code Online (Sandbox Code Playgroud)

搜索课程

<?php
namespace MyProj\Search;

use Elasticsearch\Client;
use Credential;

class Search {
    private $elasticSearchClient;

    public function __construct() {
        $this->elasticSearchClient = new Client(array(
            'hosts' => [Credential::ElasticSearchHost]
        ));
    }

    public function indexObject($object) {
        // Code 
        return $this->elasticSearchClient->index($params);
    }

    public function get() {
        return $this->$elasticSearchClient;
    }
}
Run Code Online (Sandbox Code Playgroud)

我运行composer dump-autoload没有成功,我的外观和服务提供程序加载app.php如下:

别名数组

'Search'            => 'MyProj\Facades\Search',
Run Code Online (Sandbox Code Playgroud)

提供者数组

'MyProj\Search\SearchServiceProvider'
Run Code Online (Sandbox Code Playgroud)

我花了过去30分钟调试并搜索此错误,没有任何修复.这里发生了什么?

编辑:我已经添加了堆栈跟踪,您可以在下面看到.另外,我可以看到getFacadeAccessor()正确调用,但除此之外的任何内容都超出了我的理解范围.

在此输入图像描述

突出显示的帧表示正常操作的最后一次出现,两个帧都Handler.php表示问题顶部的错误的格​​式和输出.

Mat*_*att 3

请注意,这是一个有点旧的线程,但是如果在添加新外观后未清除编译缓存,您会遇到所描述的问题。

你应该运行:

php artisan clear-compiled