Все привет.
Возник такой вопрос. Как лучше использовать класс внутри метода моего контроллера? Код ниже:
<?php
namespace app\Controller;
use app\Models\Territory;
class RegisterController extends Controller
{
public function index()
{
$this->checkSessionAndViewConnection();
$objTerritory = new Territory();
View::generate('form', $this->getConfiguration(), json_encode($objTerritory->getArea()));
}
}
Получается, что метод зависит от этого класса. Я очень хочу научиться правильно писать код.
Если я правильно понимаю, то за это отвечает один из принципов SOLID (инверсия зависимостей), но я немного не понимаю когда применять его.
У меня есть три варианта использовать сторонний класс в методе:
Можете пожалуйста подсказать мне, как правильно делать в такой ситуации?
Создайте trait GenerateForm. Подключите в любой контроллер где необходима генерация данной формы регистрации. use GenerateForm и вызывайте нужные методы для обработки. пример:
class RegisterController extends Controller
{
use GenerateForm;
public function index()
{
...
return $this->generateForm($this->getConfiguration());
}
}
// TRAIT
...
use app\Models\Territory;
trait GenerateForm {
public function generateForm($config) {
$objTerritory = new Territory();
return View::generate('form', $config, json_encode($objTerritory->getArea()));
}
}
тем самым Вам не нужно создавать объект класса для жесткой привязки. Данный объект будет создавать трейт в случае необходимости. Ну если я правильно понял задачу.
Продвижение своими сайтами как стратегия роста и независимости