Попытка использовать пользовательский фасад приводит к «Вызову неопределенного метода» в Application :: create () в Laravel?

Я пытаюсь создать свой собственный фасад для функции поиска, но у меня возникли небольшие трудности:

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

Эта ошибка вызвана попаданием моего кода:

Search::indexObject();

Где моя Search Фасад настроен следующим образом:

SearchServiceProvider

<?php
namespace MyProj\Search;

use Illuminate\Support\ServiceProvider;

class SearchServiceProvider extends ServiceProvider {

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

}

Фасад поиска

<?php
namespace MyProj\Facades;

use Illuminate\Support\Facades\Facade;

class Search extends Facade {
public static function getFacadeAccessor() {
return 'search';
}
}

Поиск класса

<?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;
}
}

Я бегал composer dump-autoload без успеха, и мой фасад и поставщик услуг загружен в app.php следующее:

Массив псевдонимов

'Search'            => 'MyProj\Facades\Search',

Массив провайдеров

'MyProj\Search\SearchServiceProvider'

Последние 30 минут я потратил на отладку и поиск этой ошибки без каких-либо исправлений. Что тут происходит?

РЕДАКТИРОВАТЬ: я добавил в трассировку стека, который вы можете увидеть ниже. Кроме того, я вижу, что getFacadeAccessor() называется правильно, но все, что находится за пределами моего понимания.

введите описание изображения здесь

Подсвеченный кадр представляет последнее появление нормальной работы, оба кадра включены Handler.php представить форматирование и вывод ошибки в верхней части вопроса.

5

Решение

Примите во внимание, что это немного старый поток, однако вы получите описанные проблемы, если скомпилированный кеш не был очищен после добавления нового Фасада.

Вы должны запустить:

php artisan clear-compiled

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]