Resim docela zajimavy problem.

Mam dve tridy, html a sql.

html me slouzi pro vypis hlavicky, paticky, menu, nastaveni cest apod.

sql pro komunikaci s databazi, checkovani query apod.

Doted jsem je pouzival ve skriptech tak, ze jsem si nejdrive vytvoril instanci html a pak instanci sql.

V sql mam metodu, ktera zachytava chyby databaze, vypise z html hlavicku, chybu a paticku, aby to pekne vypadalo a sedelo do designu stranku a uzivateli nevypadla cela stranka pri chybe DB.

To jsem pouzival nasledovne.

Kód:
	function error($error_msg) {					//vypise chybu pri vykonavani sql prikazu	
	
		global $html;
			
		$html->headers();							//je nutno vypnout ob_start v html.inc.php, jinak to nebude fungovat!!
		$html->html1();								//Aby chyba sedla do designu stranky je vypsan uvod stranky
		echo "<div>". $error_msg ."</div>";	//Vypise typ chyby				
		$html->html2&#40;&#41;;								//Vypsani zaveru stranky		
		exit;
		
	&#125;
Problem ale nastal, kdyz chci pouzit tridu sql uvnitr tridy html.

Potrebuju jeste v hlavicce hrabnout do DB, takze si tam vytvorim instanci tridy sql, ale problem je, ze metoda error v sql pocita s uz vytvorenou instanci tridy html.

Zkousel jsem kompozici, ze do konstruktoru sql jsem pridal parametr na tridu html a ten pak pouziju v sql.

V tride html vytvorim instanci sql
Kód:
....
$sql = new sql&#40;$this&#41;;
...
Kód:
	function sql&#40;&$html_class&#41; &#123;			//konstruktor
								
		$this->html = &$html_class;						
		
		include $this->html->physical_path ."includes/config.inc.php"; 		//pripojim konfigurak
......
a tady me to jeste fachci. Ale jakmile chci pouzit $this->html v jine metode tridy sql, tak me to uz nejede. Zkousel jsem to i pres dedicnost, ale s tou jsem se take nedobral vysledku.

Napada vas, jak to muzu vyresit, podotykam opet, ze podminkou je PHP4, ne PHP5