Все привет.
Возник такой вопрос. Как лучше использовать класс внутри метода моего контроллера? Код ниже:
<?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()));
}
}
тем самым Вам не нужно создавать объект класса для жесткой привязки. Данный объект будет создавать трейт в случае необходимости. Ну если я правильно понял задачу.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
у меня есть такой массив(как показано на картинке) Мне нужно находить данную по product_id
Есть код при наведении на объект появляется полеКак сделать так что бы поле появлялось при клике и не исчезало пока не кликнешь второй раз