Hallo und guten Abend,
ich habe ein Prolem was ich nun mittlerweile nicht mehr nachvollziehen kann.
Ich habe eine Klasse die mir das laden von Pages erledigt, da übergebe ich der Methode
loadPages() nun zwei Klassen via Type Hinting.
PHP-Code:
public function loadPages(DbAdaptClass $_db, FileHandlerClass $loadFileInstance){
if($this->checkPageParams() !== FALSE){
switch($this->_page){
case $this->_page:
include($this->_page.'.php');
break;
default:
include('customer_profil.php');
}
}
}
Die Klassen die da übergebe instanziere ich wie folgt vor dem Aufruf dieser Methode.
PHP-Code:
//instance auf die DB klasse
$dbInstance = new DbAdaptClass();
$dbInstance->dbConnect(sql_server, sql_user, sql_passwd, sql_db);
//intance auf den file handler
$loadFileInstance = new FileHandlerClass();
Und hier übergebe ich meine Objekte als Parameter der Methode
loadPages();
PHP-Code:
//aufrufe der pages wenn sie geladen werden können
$pageControlInstance->loadPages($dbInstance, $loadFileInstance);
So weit so gut.
Über meinen PageLoader habe ich nun eine Testdatei aufrufen lassen und nun da geprüft ob Objekte existieren.
PHP-Code:
//gibt mir eine notice das $dbInstance nicht gesetzt ist
if(is_object($dbInstance)){
echo 'ja';
}
//das wiederum klappt und mir wird ja ausgegeben
if(is_object($loadFileInstance)){
echo 'ja';
}
So und das verstehe ich eben nicht ganz, die Testpage wird ja über die Methode
loadPages(); aufgerufen und somit ist ja alles was ich da nun aufrufe auch im Scope der Methode vorhanden.
Die
Prüfung die ich in der Testdatei machte, habe ich auch in der Datei gemacht wo ich die Instanz bilde, da wird mir bei beiden ein ja ausgegeben.
Könnt ihr mir verraten warum in der Testdatei das eine Objekt was die FileHandlerClass beinhaltet und das Objekt auf meine Datenbank Klasse aber nicht?
Ich bin da mit meinem Latein am Ende.
Sollte der Code den ich gepostet habe nicht reichen und ihr benötigt weiteren um das Problem eventuell besser analysieren zu können dann poste ich natürlich nach.
Ich danke euch für eure investierte Zeit und auch Hilfe.
Mfg Litter