Ir para conteúdo
Fórum Script Brasil
  • 0

MVC PHP: a memória de uma opção


Frank K Hosaka

Pergunta

Nesses três últimos anos, eu sempre tive dificuldade para salvar uma opção do usuário. Para contornar o problema, eu usei a variável $_SESSION['opcao'].

O MVC tem um recurso bacana chamado render, e ele dispensa o uso do $_SESSION. A ideia básica do render é bem simples, você define a variável e depois chama o código que vai usar a variável. O problema é como colocar essa ideia simples no mundo do MVC. Depois de 8 horas de tentativa e erro, eu não encontrei outra solução senão criar um código que não se encaixa na pasta Models, ou Views ou Controllers, dentro desses módulos o PHP reclamou que estava criando um código com loop para o infinito.

Apesar da minha solução não ser satisfatória, eu gostei do render, ele abre uma nova oportunidade de como posso abrir os views e ao mesmo como passar os valores para ele trabalhar.

index.php

<?php
require realpath('.').'/Controllers/viewController.php';
$view=new View();
$view->render('opcaoView',['opcao'=>'']);
===============================================================
rever.php

<?php
if(isset($_POST['opcao'])){
    $opcao=$_POST['opcao'];
    require_once realpath('.').'/Controllers/viewController.php';
    $view=new View();
    $view->render('opcaoView',['opcao'=>$opcao]);
    echo "a sua opcao foi $opcao";}
?>
==================================================================
Views/opcaoView.php

<div style="width:250px;margin:0 auto;margin-top:200px">
<form action=rever.php method=post>
        Nome: <Select name=opcao id=opcao method=post>
        <option>Vana</option>
        <option>Messias</option>
        <option>Inácio</option>
        </Select>
        <p>
        <input type=submit>
</form>
<script>opcao.value='<?=$opcao?>'</script>
===================================================================
Controllers/viewController.php

<?php
class View {
    public function render($viewName, $data = []) {
        $viewFile =realpath('.')."/Views/$viewName.php";
        extract($data);
        require $viewFile;}}


 

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...