vinles 0 Denunciar post Postado Maio 21, 2009 Eae pessoal, de novo esse erro que me persegue =x Estou tendo um erro ao tentar acessar o método de uma instancia de objeto dentro de outra classe; erro: Fatal error: Call to undefined method Config::get_db_type() in C:\xampp\htdocs\wyd\class\DataBase.php on line 39 eu não sei pq ele fala que não foi definido, está tudo certo a estrutura, o erro da quando eu tento instanciar a classe DataBase, as classes eu deixo tudo separado em um diretório ja pra evitar esses erros, mas não sei oque fazer. Config.php <?php /** * Classe armazena informações de configuração * * */ class Config { private $db_type; private $db_host; private $db_port; private $db_name; private $db_user; private $db_password; function __construct() { $this->db_type="mysql"; $this->db_host="192.168.1.1"; $this->db_port=3306; $this->db_name="";//removido valor $this->db_user="";//removido valor $this->db_password="";//removido valor } public function get_db_type() { return $this->db_type; } public function get_db_host() { return $this->db_host; } public function get_db_port() { return $this->db_port; } public function get_db_name() { return $this->db_name; } public function get_db_user() { return $this->db_user; } public function get_db_password() { return $this->db_password; } } ?> DataBase.php <?php require_once 'Config.php'; /** * Classe para acesso ao banco de dados do sistema * * * @access public */ class DataBase { private $db_type; private $db_host; private $db_port; private $db_name; private $db_user; private $db_password; /** * * @var Config */ private $config; /** * * @var PDO */ private $cnn; /** * */ function __construct() { $this->config = new Config(); $this->db_type = $this->config->get_db_type(); $this->db_host = $this->config->get_db_host(); $this->db_port = $this->config->get_db_port(); $this->db_name = $this->config->get_db_name(); $this->db_user = $this->config->get_db_user(); $this->db_password = $this->config->get_db_password(); } //RESTO DA CLASSE // . // . // . } ?> Agradeço deis de já. Compartilhar este post Link para o post Compartilhar em outros sites
Diego Arent 19 Denunciar post Postado Maio 21, 2009 Aqui funcionou corretamente... Fiz um arquivo teste <?php error_reporting(E_ALL); require_once 'DataBase.php'; $base = new DataBase(); echo '<pre>'; print_r($base); echo '</pre>'; ?> e teve essa saída: DataBase Object ( [db_type:private] => mysql [db_host:private] => 192.168.1.1 [db_port:private] => 3306 [db_name:private] => [db_user:private] => [db_password:private] => [config:private] => Config Object ( [db_type:private] => mysql [db_host:private] => 192.168.1.1 [db_port:private] => 3306 [db_name:private] => [db_user:private] => [db_password:private] => ) [cnn:private] => ) Compartilhar este post Link para o post Compartilhar em outros sites
Wilker 3 Denunciar post Postado Maio 21, 2009 vinles, verifique a versao do PHP que voce esta utilizando Compartilhar este post Link para o post Compartilhar em outros sites
vinles 0 Denunciar post Postado Maio 21, 2009 PHP Version 5.2.9 É a ultima versão do Xampp completo, não sei pq está dando isso. Compartilhar este post Link para o post Compartilhar em outros sites
Diego Arent 19 Denunciar post Postado Maio 21, 2009 Estou com essa mesma versão, e como eu disse acima, não deu erro. Compartilhar este post Link para o post Compartilhar em outros sites
vinles 0 Denunciar post Postado Maio 21, 2009 Se roda ai normal pq aqui não? o que pode ser o problema, esse negocio ta me atrazando de mais. edit: se eu coloco ambos no mesmo arquivo vai de boa mas se eu incluo ele n vai =x vlw Compartilhar este post Link para o post Compartilhar em outros sites
vinles 0 Denunciar post Postado Maio 21, 2009 alguma alma pode me ajudar com isso, eu tenho que definir alguma coisa pra funcionar? por que não está dando certo só aqui? porfavor me ajudem com isso!! Compartilhar este post Link para o post Compartilhar em outros sites
Diego Arent 19 Denunciar post Postado Maio 21, 2009 Uma perguntinha "inútil" - os arquivos estão no mesmo diretório ? Já tentasse ligar o error_reporting pra ver se dá mais algum erro ? Compartilhar este post Link para o post Compartilhar em outros sites
vinles 0 Denunciar post Postado Maio 22, 2009 aff achei o problema talvez um debug no momento tive-se ajudado vo postar o que era por mesmo dando certo, eu ainda não entendi direito o por que. estrutura das pastas: +class ---Account.php ---Config.php ---DataBase.php teste.php no arquivo DataBase.php eu incluia o arquivo Config.php, usando require_once. Ai no arquivo teste.php eu incluia o DataBase.php por que ia instanciar uma classe dela. Em fim depois que alterei o require_once do arquivo DataBase.php de 'Config.php' para 'class/Config.php' deu certo. Isso que não entendo se eu incluo o database na teste(class/DataBase.php) o caminho sem a pasta deveria funcionar por que antes de eu incluir ele no teste.php se encontravam no mesmo diretório. Em fim tem como eu definir alguns diretório onde o php deve procurar os arquivo que eu incluo no require_once ou no include? Ou Alguma dica para evitar esses problemas? Puts não to me conformando até agora que é esse erro, realmente nunca pensei que poderia ser isso. Obrigado galera espero que alguem possa me ajudar a evitar essas coisas. Compartilhar este post Link para o post Compartilhar em outros sites
Diego Arent 19 Denunciar post Postado Maio 22, 2009 Se colocar './Config.php' no DataBase.php também não funciona ? Compartilhar este post Link para o post Compartilhar em outros sites
vinles 0 Denunciar post Postado Maio 22, 2009 Não funciona, to incluindo tudo agora no arquivo que for usar, ai incluo antes, pelomenos diminui problemas como esse. Bom seria setar diretórios que ele pode encontrar os arquivos ai ficaria melhor. Compartilhar este post Link para o post Compartilhar em outros sites