Especializando Controllers no Code Igniter
A algum tempo atrás eu expliquei aqui como estender a classe Controller no Code Igniter. Na época, eu não me atentei a um detalhe no guia do usuário do framework, que diz que não se deve estender a library Controller usando o load automático, salvando o arquivo na pasta application/libraries e usando o prefixo configurado.
A princípio pensei que era um problema no guia do usuário do CI, mas analisando com mais calma, de fato pode não ser bom estender o Controller dessa forma para incluir lógica aos seus controllers.
Imagine nosso sistema da forma analisada abaixo, onde temos 2 telas de cadastro e 1 relatório:

Vejam que como usamos o MY_Controller pra adicionar a lógica de Cadastros, nosso Relatório ficou órfão de uma especialização que nos pouparia tempo de desenvolvimento, caso tenhamos que implementar outros relatórios.
Pra resolver este problema, podemos criar nossa especialização na pasta de controllers da aplicação (ao invés da libraries), e incluir este arquivo nas classes que vamos estender. As classes ficariam dessa forma:

Dessa forma, podemos criar quantos tipos de controllers quisermos. Pra facilitar ainda mais o trabalho, você ainda pode implementar a função __autoload() para não precisar ficar sempre incluindo a classe nos arquivos que for utilizar.
O que se pode fazer também, é criar plugins caso seja necessário utilizar uma classe que cria uma funcionalidade a mais.
Já vi alguns tutoriais do pessoal adicionando, por exemplo, o PHPMailer como plugin para enviar e-mails…
Magus
21 Jun 07 at 18:51
Olá Magus,
De fato pode-se usar Plugins para adicionar funcionalidades ao framework. Mas o caso de especialização é um pouco diferente, já que você estará criando uma extensão da classe.
Dessa forma, a própria classe possui uma funcionalidade, pois herdou da super classe, sem você precisar instanciar de algum lugar.
Obrigado pelo comentário.
Newton Wagner
22 Jun 07 at 10:57
[...] O Kohana trabalha com autoload, e isso facilita a criação de extensões de Controllers e Models, que não sejam pela forma padrão, conforme eu disse num artigo sobre especialização de Controllers no CI. [...]
Newton Wagner - Minhas impressões sobre o Kohana Framework
1 Feb 08 at 15:52
[...] O Kohana trabalha com autoload, e isso facilita a criação de extensões de Controllers e Models, que não sejam pela forma padrão, conforme eu disse num artigo sobre especialização de Controllers no CI. [...]
Minhas impressões sobre o Kohana Framework at Newton Wagner
10 Jun 10 at 12:17