Informática Numaboa - Tutoriais e Programação
Componente 1.5 MVC - Frontend II
Seg 21 Jan 2008 14:25 |
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:28
- Autor: vovó Vicki
- Acessos: 10508
No tutorial anterior vimos o essencial de um componente Joomla 1.5 MVC. Criamos o controlador e a vista (VC), mas ficou faltando o modelo (M). Neste tutorial vamos completar a tarefa.
Se você ainda se lembra dos scripts do tutorial "Componente 1.5 MVC - Frontend" então sabe que o Olá foi colocado no código da vista. Isto não está dentro dos padrões MVC porque a vista foi projetada apenas para MOSTRAR os dados, não para contê-los.
Agora será explicado como remover os dados da vista (aliás, era um dado só, a string "Olá pessoal!") e colocá-los no modelo.
Criando o modelo
O conceito de modelo recebe este nome porque esta classe deve representar (ou ser o 'modelo') de alguma entidade. No nosso caso, o primeiro modelo representará um 'olá' ou saudação.
A convenção de nomes para modelos no framework do Joomla é parecida com a para os nomes de vistas: o nome da classe deve começar com o nome dado ao controlador (geralmente o nome do componente), seguido por Model e pelo nome do modelo. Dando seqüência ao que já fizemos até agora, o nome da classe será OlaModelOla.
A nova estrutura de diretórios ficará assim:
components | |- com_ola | |- ola.php |- controlador.php |- index.html |- models | | - ola.php | - index.html |- views | |- index.html | ola | | view.html.php |- index.html | tmpl | |- default.php |- index.html
Observe que, além do diretório models com seu arquivo ola.php, em cada um dos diretórios foi adicionado um arquivo index.html. Esta é uma boa prática para evitar que algum "abelhudo" liste seus diretórios. Você pode colocar qualquer coisa nestes arquivos, eu prefiro um arquivo vazio que mostra uma página em branco quando houver tentativas de acessar diretamente os diretórios.
Voltando à vaca fria...
Neste ponto, vamos apenas modelar um comportamento do nosso olá: obter a saudação. Para isto precisamos de apenas um método, chamado pegaOla( ). Este método não faz nada além de devolver a string "Olá pessoal!".
Aqui está o código do modelo ola.php:
Não vou mais repetir que a primeira linha é escrita por uma questão de segurança para evitar o acesso direto ao arquivo. A esta altura do campeonato todo mundo já está careca de saber, portanto, a partir deste ponto, a primeira linha linha do código será a segunda
Para começar, precisamos importar a classe JModel do framework para que possamos usá-la e ampliá-la. Então, dá-lhe o tradicional jimport.
Logo a seguir criamos a classe OlaModelOla ampliando JModel. Nela colocamos a função pegaOla( ), e isto é tudo.
Usando o modelo
O framework do Joomla foi projetado para fazer com que o controlador carregue o modelo que tiver o mesmo nome que a vista e o coloque dentro desta vista automaticamente. Como nossa vista se chama 'Ola', nosso modelo 'Ola' será carregado e colocado dentro da vista. Deste modo fica fácil obter uma referência do modelo usando o método JView::getModel( ).
O código original da vista tinha a linha
Para acionar o modelo, esta linha precisa ser substituída por
Testando o novo componente
Como fizemos as alterações diretamente e ainda não instalamos o novo componente, a mancada continua sendo chamar o componente para teste com http://www.seusite.com.br/index.php?option=com_ola&view=ola. O resultado é o mesmo que obtivemos com o código anterior, só que agora podemos dizer que temos um componente MVC autêntico.
Finalmentes
Você acaba de ser promovido de diplomado em VC para doutor em MVC
Parabéns!
Índice da série de tutoriais Componente 1.5 MVC
- Componente 1.5 - Padrão MVCComponente 1.5 - Padrão MVC
- Componente 1.5 MVC - Frontend
- Componente 1.5 MVC - Frontend II
- Componente 1.5 MVC - A tabela
- Componente 1.5 MVC - Interface Admin
- Componente 1.5 MVC - Funcionalidade admin
- Componente 1.5 MVC - Funcionalidade admin II
Referência
Hello World MVC 2 Component - The model