thiagorthomaz
(usa Ubuntu)
Enviado em 31/01/2012 - 15:25h
Boa tarde,
Pessoal to aprendendo PHP OO, e me deparei com uma dificuldade no autoload das classes.
O script abaixo deveria exibir <h2>HOME PAGE</h2> na primeira vez que acesso, e mostrar um link para ir para a tela de Cadastro.
Agradeço se puderem me apontar o erro, pois estou quebrando a cabeça e o php exibe o arquivo em branco. OBS: Estou tentando fazer 100% orientado a objeto e sem repetição de códigos. Agradeço as dicas e observações.
index.php
<?php
ini_set("display_errors", true);
error_reporting(E_ALL);
/**
* Função detinada a autocarregamento das classes.
* @param string $nomeClasse
*/
function __autoload($nomeClasse) {
$nome_arquivo = $nomeClasse.'.class.php';
$pastas = array(
"controller/",
"model/",
"view/"
);
$encontrado = false;
$qtd_pastas = count($pastas);
$posicao = 0;
while (!$encontrado && $posicao < $qtd_pastas) {
if (file_exists($pastas[$posicao] . $nome_arquivo)) {
require_once $pastas[$posicao] . $nome_arquivo;
break;
}
$posicao++;
}
}
/**
* Acessa as páginas
*/
function telas(){
if (!isset($_REQUEST['acao'])) {
$pagina = "homePage";
} else {
$pagina = $_REQUEST['acao'];
}
$tela = new Tela;
if ($pagina == "homePage") {
$tela->homePage();
}
if ($pagina == "desenhaTelaCadastro") {
$tela->desenhaTelaCadastro();
}
}
?>
Tela.class.php
<?php
class Tela{
private function cabecalho($titulo){
echo "<!DOCTYPE html>";
echo "<html>";
echo "<head>";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">";
echo "<title>".$titulo."</title>";
echo "</head>";
echo "<body>";
}
private function rodape(){
echo "</body>";
echo "</html>";
}
public function homePage(){
$this->cabecalho("Home Page");
echo "<h2>HOME PAGE</h2>";
echo "<a href=\"?=acao=desenhaTelaCadastro\">Cadastro</a>";
$this->rodape();
}
public function desenhaTelaCadastro(){
$this->cabecalho("Cadastro Usuario");
echo "<h2>Cadastra Usuario<\h2><br><br>";
echo "<form name=\"Cadastra usuario\" method=\"post\" action=\"../index.php?acao=UsuarioRN.cadastraUsuario\">";
echo "Nome: <input type=\"text\" name=\"nome\" id=\"nome\" size=\"50\"><br>";
echo "Email: <input type=\"text\" name=\"email\" id=\"email\" size=\"50\"><br>";
echo "Login: <input type=\"text\" name=\"login\" id=\"login\" size=\"50\"><br>";
echo "Senha: <input type=\"password\" name=\"senha\" id=\"password\" size=\"50\"><br>";
echo "<input type=\"submit\" value=\"Cadastrar\">";
echo "</form>";
$this->rodape();
}
}
?>