検索機能用に独自のカスタム ファサードを作成しようとしていますが、少し問題があります。
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
は、質問の上部にあるエラーの書式設定と出力を表します。