Visão Geral
Estender o Yii é uma atividade comum durante o desenvolvimento. Por exemplo, quando você cria um novo controle, você estende o framework herdando da classe CController; quando você cria um novo widget, você está estendendo a classe CWidget ou outro widget existente. Se o código estendido for projetado para a reutilização por terceiros, o chamamos de extensão.
Uma extensão normalmente atende a um único propósito. No Yii, ela pode ser classificada como:
- componente da aplicação
- comportamento
- widget
- controle
- ação
- filtro
- comando de console
- validador: um validador é uma classe que estende de CValidator.
- helper: um helper é uma classe somente com métodos estáticos. São como funções globais, que utilizam o nome da classe como seu namespace.
- módulo: um módulo é uma unidade de software independente, que contém modelos, visões, controles e outros componentes de suporte. Em diversos aspectos, um módulo lembra uma aplicação. A principal diferença é que um módulo está dentro de uma aplicação. Por exemplo, podemos ter um módulo com funcionalidades para o gerenciamento de usuários.
Uma extensão também pode ser um componente que não se encaixe em nenhuma das categorias acima. Na verdade, o Yii é cuidadosamente projetado de forma que, praticamente todo seu código possa ser estendido e customizado para atender necessidades individuais.