Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Freisleben

Utilizando POO para sistema de Cadastro de usuário

Recommended Posts

Estou estudando POO (Orientação Objeto) e comecei a fazer um exemplo de cadastro de usuário e gostaria de saber se o que estou fazendo está correto para a metodologia OO.

 

1º Criei a pagina HTML usuario.html que conterá o formulário para os inputs dos dados.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery-1.4.2.min.js" charset="ISO-8859-1"></script>
<script type="text/javascript" src="js/jquery.validate.min.js" charset="ISO-8859-1"></script>
<script type="text/javascript" src="js/usuario.js" charset="ISO-8859-1"></script>
<title>Gerenciamento da Carteira de Ações</title>
</head>
<body>

<h2>Cadastro de Usuário</h2>
<form id="usuario" method="post" action="#" />
	<label>Nome Completo: </label>
		<input type="text" name="nomeCompl" id="nomeCompl" class="name" />
	
	<label>Email: </label>
		<input type="text" name="email" id="email" class="name" />

	<label>Perfil de Acesso: </label>
		<select name="perfil" id="perfil" class="lista">
			<option></option>
			<option>Administrador</option>
			<option>Tester</option>
			<option>Gestor</option>
		</select>
		
			
	<label>Login: </label>
		<input type="text" name="login" id="login" class="text" />
		
	<label>Senha: </label>
		<input type="password" name="senha" id="senha" class="text" />

	<input type="submit" name="btn" id="btn" value="Cadastrar" class="botao" /> 
	<div id="resposta"></div>
</form>
</body>
</html>

2º Criei o arquivo usuário.php que irá receber os dados do formulário e chamará a classe Usuario.class.php

 

<?php
include 'class/Usuario.class.php';

$nome = $_POST['nomeCompl'];
$email = $_POST['email'];
$perfil = $_POST['perfil'];
$login = $_POST['login'];
$senha = $_POST['senha'];


$usuario = new Usuario($nomeCompleto, $email, $perfil, $login, $senha);

/*Exemplo utilizando o medoto insertUsuario*/
$usuario->insertUsuario();

?>

3º Criei a classe Usuario onde tem todos os atributos e métodos do usuário. Minha duvida é se esse raciocinio da minha classe está certo. Onde ponho os métodos para inserir, editar, excluir e consultar. Se essa classe está dentro das metodologias OO.

 

<?php

class Usuario{
	/*Atributos*/
	public $nomeCompleto;	
	public $email;
	public $perfil;
	protected $login;
	private $senha;
	
	/*Construtor*/
	function __construct($nomeCompleto, $email, $perfil, $login, $senha){
		$this->nomeCompleto = $nomeCompleto;
		$this->email = $email;
		$this->perfil = $perfil;
		$this->login = $login;
		$this->senha = $senha;
		
		}
	/*GETs e SETs*/
	
	
	/*Metodo de Validação*/
	
	public function validarUsuario(){
		/*Aqui logica para validar os dados que está vindo do formulario...*/
		}
		
	/*Metodo Insert*/	
	
	public function insertUsuario($teste){
		/*Aqui logica para inserir o usuario no Banco de dados*/
		/* $sql = "INSERT INTO" ........*/
		
		}

	/*Metodo Update*/		
	
	public function updateUsuario(){
		
		}
}

?>

ola amigos quem puder dar uma olha!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum... então cara, existem várias formas de se fazer uma mesma coisa.

 

Também tentei começar com POO dessa forma.. bem parecido com oque você fez, é o pattern Active Record

mostre a implementação do método insertUsuario()

 

como você fez a conexão com o banco de dados ?

isso aqui:

include 'class/Usuario.class.php';
num sistema grande, acaba se tornando um estorvo.. procure por __autoload()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou estudando PHP com orientação a objetos. Comecei a pouco tempo. Pelo que eu entendi nos meus estudos, a maneira que você tá programando ainda não é orientação a objetos. A classe Usuario tá beleza, já é um começo, mas a página usuario.html não tem nada de OO. Eu estou estudando com os livros "PHP 5: Conceitos, Programação e Integração com Banco de Dados de Walace Soares" e "Programando com Orientação a Objetos (Inclui Design Patterns) de Pablo Dall'Oglio". Indico eles pra você.

 

Olha só o código-fonte de criação de um formulário:

 

Código-Fonte:

<?php

/*
* função __autoload()
* Carrega uma classe quando ela é necessária,
* ou seja, quando ela é instancia pela primeira vez.
*/
function __autoload($classe)
{
if (file_exists("app.widgets/{$classe}.class.php"))
{
include_once "app.widgets/{$classe}.class.php";
}
}

// instancia um formulário
$form = new TForm('form_email');
// instancia uma tabela
$table = new TTable;

// adiciona a tabela ao formulário
$form->add($table);

// cria os campos do formulário
$nome = new TEntry('nome');
$email = new TEntry('email');
$titulo = new TEntry('titulo');
$mensagem = new TText('mensagem');

// adiciona uma linha para o campo nome
$row=$table->addRow();
$row->addCell(new TLabel('Nome:'));
$row->addCell($nome);

// adiciona uma linha para o campo email
$row=$table->addRow();
$row->addCell(new TLabel('Email:'));
$row->addCell($email);

// adiciona uma linha para o campo título
$row=$table->addRow();
$row->addCell(new TLabel('Título:'));
$row->addCell($titulo);

// adiciona uma linha para o campo mensagem
$row=$table->addRow();
$row->addCell(new TLabel('Mensagem:'));
$row->addCell($mensagem);

// cria dois botões de ação para o formuláriop
$action1=new TButton('action1');
$action2=new TButton('action2');
// define as ações dos botões
$action1->setAction(new TAction('onSend'), 'Enviar');
$action2->setAction(new TAction('onView'), 'Visualizar');

// adiciona uma linha para aas ações do formulário
$row=$table->addRow();
$row->addCell($action1);
$row->addCell($action2);

// define quais são os campos do formulário
$form->setFields(array($nome, $email, $titulo, $mensagem, $action1, $action2));


/*
* função onView
* Visualiza os dados do formulário
*/
function onView()
{
global $form;
// obtém os dados do formulário
$data = $form->getData();
// atribui os dados de volta ao formulário
$form->setData($data);

// cria uma janela
$window = new TWindow('Dados do Form');
// define posição e tamanho em pixels
$window->setPosition(300, 70);
$window->setSize(300,150);

// monta o texto a ser exibido
$output = "Nome: {$data->nome}\n";
$output.= "Email: {$data->email}\n";
$output.= "Título: {$data->titulo}\n";
$output.= "Mensagem: \n{$data->mensagem}";

// cria um objeto de texto
$text = new TText('texto', 300);
$text->setSize(290,120);
$text->setValue($output);
// adiciona o objeto à janela
$window->add($text);
$window->show();
}

/*
* função onSend
* Exibe mensagem "Enviando dados..."
*/
function onSend()
{
global $form;
// obtém os dados do formulário
$data = $form->getData();
// atribui os dados de volta ao formulário
$form->setData($data);
// torna o formulário não-editável
$form->setEditable(FALSE);
// exibe mensagem ao usuário
new TMessage('info', 'Enviando dados...');
}

$page = new TPage;
$page->add($form);
$page->show();

echo '<h2>Código-Fonte:</h2>';
show_source(__FILE__);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.