Controladores de Interface Gráfica em PHP, procedimento para programar


Reza a dita que a interface gráfica deve ser burra, ou seja, a única finalidade dela é ser um meio de interação do usuário com o sistema, nada além disso ! Resolvemos isso com os controladores …

1º – Os controladores de GUI (Graphics User Interface – Interface Gráfica de Usuário, não vou repetir isso …. hehehe), devem ser uma camada entre as interfaces gráficas e todos as classes, quem se comunica com as classes será ele, e nao a GUI

2º –  As GUI devem deixar claro para o controlador a sua intenção

Vamos ao exemplo …

Vamos criar uma GUI simples …

<ul>
<!-- Este exemplo não vem com URL amigáveis-->
<li><a href="?classe=A&amp;metodo=Hello" >Teste A</a></li>
<li><a href="?classe=B&amp;metodo=Hello" >Teste B</a></li>
</ul>
<div>
<!-- Aqui a abaixo serão apresentado todo o resultado esperado -->
<?php
require_once ('controlador.php');
?>
</div>

Nada dificil o código acima, ele está com dois links que intentam chamar funções em classes diferentes … vamos ao controlador, não vou fazê-lo em OO para ficar mais fácil de vcs entenderem, depois é só “queimar pestana” para transformá-lo em Classe…

<?php
/* A 1ª coisa ter em mente que ele vai lidar com todas as classes
 * por isso usaremos uma factory, fábrica, já explica em outro post
 */
require_once ("factory.class.php");
$fabrica = Factory::singleton(); // Aqui estamos instanciando a nossa fábrica
// Estamos passando $_GET já que são links clicados
$classe = $_GET['classe'] // string contendo o nome da classe
$metodo = $_GET['metodo'] // string contendo o nome do método

$obj = $fabrica->getObjdaClasse ($classe)// Método da fábrica, criar Objeto
$obj->$metodo();// POde parecer mais não é POG
?>

Como falado não vou posta o Código da Factory, pois já falei em outro post… vamos as Classes …

<?php
class A{
private $algo;
public function A(){

}
public function Hello(){
echo "Eu sou o Hello da Classe A";
}
}
?>
<?php
class B{
private $algo;
public function B(){

}
public function Hello(){
echo "Eu sou o Hello da Classe B";
}
}
?>

Ta simples, porém funcional … vc pode variar muitas coisas ae, como falei até colocar em OO, pode arrumar para ser com return e por ae vai …. Esse ae foi só um meio para entender …

Post do factory: https://d3rf.wordpress.com/2007/09/27/desgin-patterns-para-php-padroes-de-projetos/

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s