Ir para conteúdo

Arquivado

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

nsouzajf

Herada de não funciona em Grud Generico

Recommended Posts

Colegas,

o codigo abaixo era para printar na tela a instancia do objeto, mas nada acontece poderia me dar uma ajuda?

Parece que o problema esta na classe base, mas não sei como corrigir. Falo isso pq se eu tirar o abstract da classe base funciona.

Mas pode ser suposiçao.

 

<?php
require_once 'classes/clientes.class.php';

$cliente = new clientes();
$cliente->setValor('nome',"Maria");
$cliente->setValor('sobrenome',"Antonia");
$cliente->setValor('bairro',"Sao Dimas");

echo '<pre>';
	printf($cliente);
echo '</pre>';

?>

 

Abaixo estão as classes para um entendimento melhor.

classe cliente

<?php
require_once ("base.class.php");

class clientes extends base 
{				
	public function __construct($campos=array()) 		
	{					
		parent::__construct();

		$this->tabela = "clientes";
		if(sizeof($campos)<=0)
		{
			$this->campos_valores=array(

					"nome"=> null,
					"sobrenome" => null				
					);
		}
		else {
			$this->campos_valores =$campos;				
		}
		$this->campopk = "id";					

	}
}
?>

Classe Base

 


<?php
require_once ("banco.class.php");

abstract class base extends banco {


	public $tabela = "";
	public $campos_valores = array();
	public $campopk = NULL;
	public $valorpk = NULL;
	public $extras_select = "";		

	public function addCampo($campo=NULL,$valor=NULL) 
	{
		echo("exibir mensagem <br>");

		if($campo!=null){
			$this->campos_valores($campo) = $valor;
		}

	}//fim						

	public  function delCampo($campo=NULL)		
	{
		echo("passou <br>");

		if(array_key_exists($campo, $this->campos_valores)){ 
			unset($this->campos_valores[$campo]);
		}

	}//fim do método	

	public function setValor($campo=NULL,$valor=NULL)
	{
		if($campo!=null && $valor!=null){
			$this->campos_valores[$campo] = $valor;
		}
	}//fim do método

	public function getValor($campo=NULL) 
	{
		if($campo!= null && array_key_exists($campo, $this->campos_valores)){
			return $this->campos_valores($campo);
		}else{
			return FALSE;
		}
	}

}
?>

classe banco

<?php
abstract class banco{	

//propriedades
public $servidor		= "localhost";
public $usuario			= "root";
public $senha			= "root";
public $nomebanco		= "aulas";
public $conexao			= "NULL";
public $dataset			= "NULL";
public $linhasafetadas	= -1;


//métodos
public function __construct(){
	$this->conecta();
	echo("chamou constructor banco<br>");

}//fim da classe

public function __destruct() {
	if($this->conexao != Null):
	endif;
}//fim da classe

public function conecta(){	

	$this->conexao = mysql_connect($this->servidor,$this->usuario, $this->senha,TRUE)
	or die($this->trataErro(__FILE__,__FUNCTION__,mysql_errno(),mysql_error(),TRUE));
	mysql_select_db($this->nomebanco) or die($this->trataErro(__FILE__,__FUNCTION__,mysql_errno(),mysql_error(),TRUE));
	mysql_query("SET NAMES 'utf8'");
	mysql_query("SET character_set_connection=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_results=utf8");	


}//Fim da classe

public function trataErro($arquivo=NULL,$rotina=NULL,$numero=NULL,$msgerro=NULL,$geraexcpt=FALSE){
	if($arquivo==NULL) 	$arquivo="nao informado";
	if($rotina==NULL) 	$rotina="nao informado";
	if($numero==NULL) 	$numero=mysql_errno($this->conexao);
	if($msgerro==NULL) 	$msgerro=mysql_error($this->conectar());
	$resultado = 'Ocorreu um erro com os seguinte detalhes:<br />
					<strong> Arquivo:</strong>  '.$arquivo.'<br />
					<strong> Rotina:</strong>  	'.$rotina.'<br />
					<strong> codigo:</strong>  	'.$numero.'<br />
					<strong> mensagem:</strong> '.$msgerro;
	if($geraexcpt==false):
		echo($resultado);
	else:
		die($resultado);
	endif;

}//fim da classe	

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Remova o parent::__construct(); da classe filha que deve funcionar.

 

Não resolveu, ademais tenho que executar métodos da classe base e executar a conexão da classe banco, pois isso não posso remover o parent:: __constructor() entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui nessa parte

$this->campo_valores = array(

 

"nome" => NULL,

"sobrenome" => NULL

};

 

você fechou o array com chave o certo e fechar com parentes que vai ficar dessa maneira

 

$this->campo_valores = array(

 

"nome" => NULL,

"sobrenome" => NULL

);

 

flw

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.