Checklor: Request Handling

Beitrag lesen

Mit Autoloading sähe der Code so aus:

include('autoloader.php');

$set_settings=new settings();
$contact=new contact();
$auth=new auth();


>   
> Statische Klassen werden auch automatisch geladen, wenn sie gebraucht werden.  
  
  
Das ist mir schon klar das dies so aussehen würde. Allerdings habe ich dann das gleiche Problem wie vorher, oben müssen die die Klassen instanziert werden.  
  
Ne Klasse ist bei mir immer so aufgebaut (PSEUDO):  
  
~~~php
class Klasse1{  
  
public function __construct(){  
  
   if(isset($_POST['formular1'])) self::bearbeiteFormular1();  
   if(isset($_POST['formular2'])) self::bearbeiteFormular3();  
   if(isset($_POST['formular3'])) self::bearbeiteFormular3();  
}  
  
private static function bearbeiteFormular1(){}  
private static function bearbeiteFormular2(){}  
private static function bearbeiteFormular3(){}  
  
}

Also. Um auf ein Formulareingabe zu reagieren, _muss_ die Klasse schon vorher instanziert sein, damit im Konstruktor auf den Request passend reagiert werden kann. Das Autoloading kann ja nicht eingreifen weil PHP nicht automatisch weiß was ein Request für eine Klasse benötigt. Das muss ich ihm ja sagen.

Bei 10 Klassen mit jeweils mindestens 3 Request-Handlings im Konstruktor wären das bei jedem Request 30 If-Schleifen die durchfahren werden.

Nun will ich das Autoloading irgendwie nutzen.
Da gäbe es dann z.B. die Möglichkeite, jedem Formular ein hidden-input Feld zu geben mit einem Namen des Formulars. Dann könnte ich das so machen das Anfang der index.php eine große Schleifenkonstruktion steht die die Klassen je nach hidden-Input-Feld instanziert und da kann dan Autoloading eingreifen.

Das sähe so aus(PSEUDO):

if(isset($_POST['formular1']))  
{  
  $Klasse1 = new Klasse1();  
}  
elseif(isset($_POST['formular2'])) {  
  $Klasse2 = new Klasse2();  
}  
elseif(isset($_POST['formular3'])) {  
  $Klasse3 = new Klasse3();  
}  

Das würde zumind. schonmal aus 30 Requests Handlings 10 machen und nicht direkt alle Klassen includen. Wäre schonmal ein Erfolg.
Schade nur das mir das irgendwie null gefällt vom Aufbau, es sieht so prozedual aus, ich würde das viel lieber universeller, globaler, unabhängiger machen - OOP.
Ich muss ja jedes mal wenn eine Klasse dazu kommt, diese in diese "Liste" einreihen.

Liebe Grüße,

Checklor