Я собираю в контейнере PHP: return function (Container $container) { $container->set(PDO::class, function () use ($container) { return new PDO( $container->get('database')['dsn'], $container->get('database')['username'], $container->get('database')['password'], $container->get('database')['options'] ); }); }; Потом в промежуточном передаю PHP: class DatabaseMiddleware implements MiddlewareInterface { public function __invoke(Request $request, App $app): Response { Connection::setPDO($app->getContainer()->get(PDO::class)); return $app($request); } } class Connection { private static $callback; private static $PDO; public static function getPDO(): PDO { return self::$PDO ?? self::$PDO = call_user_func(self::$callback); } public static function setPDO(PDO $PDO): void { self::$callback = function () use ($PDO) { return $PDO; }; } } Так может быть сразу при сборке передать или собирать в промежуточном и передать?
@mkramer там обёртка ActiveRecord на статике автовайрить умеет, но мне чтобы её автовайрить, то нужно на динамику переписывать, а при динамике там бред получится: я автовайрю модель (получаю УЖЕ ЭКЗЕМПЛЯР ТАБЛИЦЫ), присваиваю её свойству, а от свойства использую методы для работы с БД присваивая их результаты переменным, мне так неудобно, на статике я просто делаю User::findOne(1) поэтому у меня коннект статикой прилетает, я в контейнер PDO собираю на случай вдруг запилю что другое, пока что так