Klaus: OOP Konflikt

Beitrag lesen

  
                        $uri_params=explode("?",$_SERVER['REQUEST_URI']);  
			$uri=explode("/",trim($uri_params[0], '/'));  
			  
			# Parameterarray  
			$params = array();  
			  
			// Sind Controller UND Action vorhanden?  
			if(isset($uri[0])&&isset($uri[1]))  
			{  
				# Controllernamen setzen  
				$controllername = $uri[0];  
				  
				# Wichtige Parameter  
				$main=array_slice($uri, 2);  
				$params[]=$main;  
				  
				# Sonstige Parameter  
				parse_str($uri_params[1], $misc);  
				$params[]=$misc;  
				  
				# Action setzen  
				$action = $uri[1];  
			}  
			else  
			{  
				# Controllernamen setzen  
				$controllername='Index';  
				# Action setzen  
				$action='IndexAction';  
			}  
			  
			// Objekt erstellen & Action aufrufen  
			$controller="Controllers_".$controllername;  
			$object=new $controller();  
			call_user_func_array(array($object, $action), $params);

So hab ich das jetzt gelöst, ich hoffe all deine Ratschläge wurden umgesetzt.
Allerdings habe ich ein Problem.
In meinem Testskript, wird der Controller "Newsletter" mit der Action run(array $params) aufgerufen.

Die URL dazu sieht so aus:
http://localhost/Newsletter/run/cat/5/?test=okay

Wenn ich var_dump($params) vor ich call_user_func_array() aufrufe,
habe ich folgende Ausgabe:
array(2) {
   [0]=>  array(2) { [0]=>  string(3) "cat" [1]=>  string(1) "5" }
   [1]=>  array(1) { ["test"]=>  string(4) "okay" }
}

Das ist ja auch richtig so.

  
public function run(array $params){  
		var_dump($params);  
	}  

So sieht die Action im Controller aus - und was gibt der Drecksack mir aus?

array(2) { [0]=>  string(3) "cat" [1]=>  string(1) "5" }

Egal was ich versuche - ob ich sie mit $params[0/1] anspreche oder aus $params[]=$main; -> $params['main']=$main;  mache und dann über $params['main'] das Subarray anspreche. Es klappt nicht. Er überträgt irgendwie nur ein Array.

Ich wette das ist nur gerade ein Flüchtigketisfehler mit nem Brett überm Kopf. Ich bin grad echt zu blöd ein mehrdimensionales Array als Parameter zu übergeben.

Gruß,
Klaus