Задать вопрос
@V_Tjuryakin
Перфекто

Какой тут может быть *овнокод?

Здравствуйте, коллега увидев метод в контроллере сказал, что он один сплошной быдлокод, именно сам код, объясните мне, может я не из нашего мира? Как по мне так все нормально.

public function getIndex()
    {
        $title = 'Мои компании';

        $where = array('uid' => Sentry::getUser()->id);
        if (Input::has('status')) $where['status'] = (Input::get('status') ? 1 : 2);

        $company_list = new CompanyList();
        $company = $company_list->get($where)->paginate(1);

        return View::make('dashboard.account', compact('title'))->with(array(
            'company' => $company
        ));
    }
  • Вопрос задан
  • 2897 просмотров
Подписаться 5 Оценить Комментировать
Решение пользователя Сергей Протько К ответам на вопрос (4)
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1) Форматирование кода ужасно. Начнем с этого.
2) что тайтл делает в контроллере?
3) что за 1 и 2, что они значат? Стоит заменить на константы хотя бы.
4) уже пару лет можно использовать сокращенный синтаксис массивов
5) У вас же есть IoC, почему вы вызываете new CompanyList()? К чему это вообще относится? Что происходит?

Короче... ужас... контроллер это то место, по которому должно быть понятно что там происходит. Что-то в этом духе:

class CompanyListController {

    /**
     * @var CompanyRepositoryInterface
     */
    private $companyRepository;

    function __construct(CompanyRepositoryInterface $companyRepository)
    {
         $this->companyRepository = $companyRepository;
    }

    public function getIndex() 
    {
            $companies = $this
                 ->companyRepository
                 ->getCompanyByUser(Sentry::getUser()->id, Input::get('status', false))
            ;

            return View::make('dashboard.account')->with(compact('companies'));
    }
Ответ написан