Я пытаюсь использовать фасад, который я создал, для работы с mongoDB, но я не могу заставить его работать внутри собственного пакета.
Мой пакет работает нормально, и я могуНазовите мой фасад без проблем за пределами моей посылки.
Я загружаю свою посылку с помощью композитора следующим образом:
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/",
"Insight\\": "packages/test"
}
},
Я следовал небольшому руководству по созданию фасада. Ссылка на учебник
Я переименовал фасад в mongoDatabase, который отлично работает в моих контроллерах (за пределами моего пакета).
public function __construct(EmailRepository $emailRepository)
{
$this->emailRepository = $emailRepository;
}
public function store()
{
$this->emailRepository->store(['plain' => 'test']);
}
В моем хранилище я создалабстрактный класс, который фактически загружает фасад.
/**
* AbstractRepository constructor.
*
* @param \mongoDatabase $mongoDatabase
*/
public function __construct(\mongoDatabase $mongoDatabase)
{
$db = Config('services.mongo.database');
$this->collection = $mongoDatabase::get()->selectCollection($db, $this->table);
}
Однако, вызывая emailRepository из моего пакета, я получу следующую ошибку:
Call to undefined method App\mongoDatabase\Facade::get()
Прямо сейчас я немного не уверен, еслиЯ могу добраться до фасада в тот момент, когда пытаюсь вызвать его внутри моей посылки?Загружается ли мой пакет перед фасадом, из-за чего он не знает о функции get фасада?Или я упускаю что-то еще, что мне нужно сделать, чтобы мой пакет мог загрузить фасад?