Pergunta

atualmente estou aprendendo o yii framework e ter de ler a sua documentação.

mas eu ainda não entendo os componentes.o que são essas.eles falam sobre o componente de eventos e comportamentos.

alguém poderia explicar esses termos para mim e me dar a real aplicação exemplos de que um componente, seus eventos e comportamentos poderiam ser?

seria útil!

Foi útil?

Solução

Um CComponent, por si só, não faz muito.É muito parecido com um QObject em Qt.Um CComponent pode disparar eventos, e pode ter delegados para eventos (através de attachEventHandler()).

A respeito de comportamentos, o manual diz:

Os métodos de comportamento pode ser invocada como se eles pertencem a componente.Vários comportamentos podem ser anexado, para o mesmo componente.

Para anexar um comportamento a um componente, chamada attachBehavior;e para retirar o o comportamento do componente, chamada de detachBehavior.

Um comportamento pode ser temporariamente habilitado ou desativados chamando enableBehavior ou disableBehavior, respectivamente.Quando desativado, o comportamento métodos não podem ser invocado através do componente.

A partir da versão 1.1.0, um comportamento de propriedades (seu variáveis de membro público ou de seus propriedades definidas através de getters e/ou setters) pode ser acessado através do componente é ligado.

O que dá a você a possibilidade de simular um sinais e slots o mecanismo, ou o padrão de estratégia de (ativando ou desativando comportamentos).

A maioria das classes do Yii tem CComponent como uma classe base.

Como um usuário, você vai ver os benefícios que elas proporcionam, através dos mecanismos mencionados acima, quando você vai criar o seu próprio veículo (em protected/components/).

Você pode encontrar um bom ponto de partida para a implementação de componentes aqui: http://www.yiiframework.com/doc/guide/basics.component

Outras dicas

No YII, um aplicativo funciona através da interação de diferentes objetos, esses objetos podem ser simplesmente considerados "componentes" ou "blocos de construção" do aplicativo. Um componente é simplesmente um objeto que está escrevendo para executar ou facilitar uma tarefa específica em um aplicativo YII. Se você analisar o "fluxo de trabalho típico de um aplicativo YII" em [http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc].

Você perceberá que, além de visualização e layouts (que são considerados scripts) e index.php, tudo o que interage com outros é um componente. Todos eles executam tarefas diferentes quando o aplicativo é executado.

Quase tudo no YII é um componente (ou derivado da classe Ccomponent).

Mais especificamente,

O CComponent implementa o protocolo da definição, usando propriedades e eventos ".

Eventos : Os eventos permitem que você execute uma sequência (mais de uma) de ações quando algo específico acontece dentro de um componente. Você define um evento e anexa várias funções (ações) a esse evento. Agora, sempre que esse evento é criado dentro do componente, todas as funções anexadas a esse evento são executadas. De acordo com o meu entendimento, estes são um pouco semelhantes ao conceito de ganchos no WordPress.

A aplicação específica de eventos em um componente é definida por yii como

É útil quando você deseja interromper o fluxo normal de aplicação sem estender as classes base.

Comportamentos : Os comportamentos são simplesmente a maneira do YII de fornecer a herança múltipla, que não é suportada pelo PHP5 enquanto acaba com o problema de nomes de múltiplas funções de herança múltipla. Se você deseja herdar propriedades e métodos das Classe A e B. Você estende a Classe A e, em seguida, anexa a Classe B como seu comportamento e, em seguida, também pode usar todos os métodos da Classe B. Agora, se A e B contiverem uma função denominada 'Útilfunção ()', todas as chamadas para essa função resultarão na execução de 'Útilfunção' da classe A apenas. Se as classes A e B fossem adicionadas como comportamentos a uma classe, a chamada de 'função útil' resultaria na execução do método do comportamento que foi anexado primeiro.

PS (eu não sou um especialista. Então, por favor, corrija -me se estiver errado em qualquer lugar.)

Talvez esta página extra em seu wiki possa fornecer mais informações:http://www.yiiframework.com/wiki/44/behaviors-events/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top