guten abend an die gemeinde,
ich hab ein kleines problem ... ich entwickle mir derzeit eine page in OOP soweit ichs kann ^^ aber hab jetzt ein anliegen
hier eine beispiel function:
	
das global $temp; stört mich ich kann auf die smarty class aber nicht ohne das global zugreifen:
	
		
 die classen werden mit folgendem script geladen:
start.php
	
und das is der teil aus der factory.php
	
hab die abstract factory aus nem forum über google gefunden um das global problem zu lösen aber klappt leider nicht
würde mich freuen wenn mir jemand weiter hilft
danke
					ich hab ein kleines problem ... ich entwickle mir derzeit eine page in OOP soweit ichs kann ^^ aber hab jetzt ein anliegen
hier eine beispiel function:
PHP-Code:
	
	
public function footer() 
{
global $temp;
    $temp->assign(array(
            'DEBUG'        =>    $db->debug()
                    ));
        $temp->display('footer.tpl');
} 
			
			
				Fatal error:  Call to a member function display() on a non-object in blablabla..
			
		
	start.php
PHP-Code:
	
	
$workpath = $_SERVER["DOCUMENT_ROOT"];
require_once("$workpath/lib/Factory.php");
define( '_CLASS_PATH_', '/home/mpl/www/lib/' ); 
try { 
$conf     = Factory::get( 'config::Config' );
$db     = Factory::get( 'database::MysqlDB' ); 
$temp    = Factory::get( 'smarty::Smarty' ); 
$user     = Factory::get( 'user::userhandler' ); 
$page     = Factory::get( 'mainpage::Mainpage' ); 
$bbcode = Factory::get( 'mainpage::BBcode' ); 
}catch( Exception $e ) { 
    echo $e->getMessage(); 
} 
PHP-Code:
	
	
class Factory { 
  
  public static function get($class_name, $params = null) { 
  
  if( !is_string($class_name) || ! trim($class_name) ) { 
    throw new Exception( 'kein gültiger Klassenname' ); 
  } 
  
  // gibt es die Klasse überhaupt  
  $file = _CLASS_PATH_.strtolower( str_replace( '::', DIRECTORY_SEPARATOR, $class_name ).'.class.php' ); 
  if( !file_exists( $file ) ) { 
    throw new Exception( 'Datei nicht gefunden' ); 
  } 
  
  require_once $file; 
  try{ 
  $tmp = explode( '::', $class_name ); 
  $name = array_pop( $tmp ); 
  $obj = new $name( $params ); 
  }catch( Exception $e ) { 
  throw new Exception( 'Fehler beim Konstruieren des Objektes: '.$e->getMessage() ); } 
  return $obj; 
  } 
} 
würde mich freuen wenn mir jemand weiter hilft
danke
 
          
 Moderator
 Moderator sry bin anfänger kann mir das jemand genauer erklären? vllt mit beispielen am obrigen code
 sry bin anfänger kann mir das jemand genauer erklären? vllt mit beispielen am obrigen code
							
						 andere lösung wäre
 andere lösung wäre 
Kommentar