Ola galera, a seguinte questão é mais uma dúvida de uso e não de código. Fiz toda a formação php aqui na Alura, incluindo Design Patterns e SOLD. Comecei desenvolver código e para aumentar a produtividade decidi estudar um FrameWork escolhi CodeIgniter desmanchei ele de cima para baixo, incluso adaptando o CORE. A duvida: pese a que ajuda muito no desenvolvimento, esta organização de código como tem aderência com as boas praticas e SOLID, se acoplar a elementos estaveis como interfaces (as quais no framework tem que criar pois nem vem pre-setadas), clases pequenas, sistemas que consigam se expandir com muitas clases e muito pequenas favorecendo a manutencao. O que vi até agora ~e que nos proprios manuais do Framework e ate no curso da Alura ~e levado adiante como pratica colocar tudo o vinculado a um topico dentro de cada controller. conclusao, controllers enormes. Exemplo, Sistema de Chamados. Tudo o referente a logica do chamado fica dentro do controller chamado enchendo de funcoes. Na pratica de patterns, usavamos uma clase para cada estado, o padrão state, clase isolada para conexao, etc. O CodeIgniter parece abusar tbm de singleton, usa variaveis de clase d mais... Fico realmente confuso