firep91613
Новичок
Ок. Как тогда лучше передать? Вот контроллер главной страницы. Он использует модель PostsModel, этой модели надо передать экземпляр класса Db.То же и по отдельным классам, в идеальном мире у тебя для каждого действия один класс с одним публичным методом, инъекции зависимостей через конструктор и __invoke() запускающий код.
PHP:
<?php
namespace App\Controllers;
use \App\Models\PostsModel;
class HomePageController
{
private PostsModel $postModel;
public function __construct()
{
$this->postModel = new PostsModel();
}
public function index(): void
{
$posts = $this->postModel->getAllPosts();
require_once VIEWS . '/home.php';
}
}
PHP:
require_once __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/bootstrap.php';
require_once __DIR__ . '/../config/constants.php';
$router->get('', [HomePageController::class, 'index']);
PHP:
<?php
use \App\Classes\ServiceContainer;
use \App\Classes\Db;
$container = new ServiceContainer();
$container->setService(Db::class, function () {
$db_config = include CONFIG . '/db_config.php';
return new Db($db_config);
});