Я хочу автоматизировать зависимости базы данных при изменении соединения с базой данных с Mysql на Mongodb.
Я использую https://github.com/jenssegers/laravel-mongodb для базы данных laravel mongodb, для использования этой библиотеки я должен расширить свои модели сэто конкретная модель, я хочу изменить свое соединение с базой данных с mysql на mongodb во время выполнения, и при изменении базы данных ее зависимости (например, расширение ее модели) выполняется автоматически.
это реализация модели laravel:
abstract class Model implements ArrayAccess, Arrayable, Jsonable,
JsonSerializable, QueueableEntity, UrlRoutable {
it's codes ....
}
и это реализация модели библиотеки:
abstract class Model extends BaseModel {
it's codes ....
}
Я добавляю эти коды в мой RouteServiceProvider.php для замены модели библиотеки вместо модели laravel:
if (config('database.default') == 'mongodb') {
$this->app->bind(
'Illuminate\Database\Eloquent\Model',
'Jenssegers\Mongodb\Eloquent\Model'
);
}
Iзнаю, что я могу использовать инъекцию зависимостей только в конструктор или метод, и в этом случае у меня нет конструктора, и я не знаю, как использовать инъекцию конструктора для него (потому что оба они являются абстрактным классом, и мои модели должны расширять библиотечный классне просто называть это специальными методами), тогда это определенно не будет работать.
Есть ли у какого-нибудь тела решение?