Куда можно вынести код из контроллера, чтобы он не был таким жирным?? Какие решения есть для таких случаев? Я так понимаю командная шина тут не подходит?
public function index(Request $ request) { $ validator = \Validator::make($ request->all(), [ 'widget' => 'required', ]); if ($ validator->fails()) { return response()->json(['errors'=>$ validator->errors()]); } $ exist_widget = array_key_exists($ request['widget'],$ this->config); if (!$ exist_widget ) { return json_encode(['error' => 'Widget Not Found']); } $ namespace = $ this->config[$ request['widget']]['namespace']; if (!class_exists($ namespace)) { return json_encode(['error' => 'Widget Not Found']); } $ widget = new $ namespace(); return response()->json($ widget->getField()); }