Какова лучшая практика для создания экземпляра объекта для использования в проекте, а не в каждом методе или классе контроллера?
Я хочу использовать шаблоны в проекте Codeigniter-4.
Если бы мой контроллер выглядел так
class Blog extends \CodeIgniter\Controller
{
public function index()
{
$data = [
'todo_list' => ['Clean House', 'Call Mom', 'Run Errands'],
'title' => "My Real Title",
'heading' => "My Real Heading"
];
echo view('blogview', $data);
}
}
Я хочу использовать систему шаблонов, которая работает как показано ниже:
// Create new Plates instance
$templates = League\Plates\Engine::create('/path/to/templates');
// Render a template with the given data
echo $templates->render('profile', ['name' => 'Jonathan']);
Мой вопрос - что является лучшим местом для реализации этого $templates
объект?
Я могу повторить это в каждом методе, который я знаю наверняка, является плохой практикой..... ИЛИ... Я мог бы сделать это в __contstructor() и назначить $this->templates
и я делаю это для каждого контроллера, где я хочу использовать этот шаблон. Я чувствую, что есть еще лучший способ.
У меня мало опыта в Laravel, где я специально не устанавливаю эту переменную $templates для использования шаблонов Blade, вместо этого она просто вызывает View(). Я хочу добиться чего-то подобного, если это возможно. Я пометил laravel, чтобы кто-нибудь с большим опытом в Laravel мог лучше понять, как этого добиться?
Что ты предлагаешь?
PS: я использую автозагрузку композитора для загрузки всех файлов.
0 ответов
Боюсь, что на самом деле я только пользователь CI3, но я немного читал о CI4, и все еще есть базовый контроллер, который вы можете использовать. Вам следует взглянуть на https://codeigniter4.github.io/userguide/extending/basecontroller.html?highlight=basecontroller. Затем вы сделаете свои шаблоны $this-> доступными через все расширенные контроллеры.