Hallo Leute!
Ich habe eine Klasse, die ich bei jedem Seitenaufruf instantiere und deren Methoden ich auch bei jedem Seitenaufruf benutze. Unter gewissen Bedingungen ist es allerdings notwendig, dass ich weitere Methoden aufrufen muss.
Anstatt alle Methoden in eine Klasse zu schreiben, von der ich beim regulären Seitenaufruf aber nur einen Bruchteil auch verwende, hatte ich nun vor, alle anderen Methoden von der Haupt-Klasse abzusondern, und in eine separate Datei zu legen, die ich dann include, wenn ich die darin befindlichen Methoden brauche.
Weil man aber nicht einfach so einer Klasse weitere Methoden hinzufügen kann (ich bin jedenfalls auf keine Möglichkeit gestoßen), habe ich mir folgende Lösung ausgedacht:
Alle Methoden, die ich dazuladen möchte, schreibe ich in eine andere Klasse. Diese Klasse instantiere ich zur Laufzeit innerhalb einer der Methoden in der Haupt-Klasse. Dort übergebe ich $this als Parameter-Referenz an die Methoden der gesonderten Klasse, um darüber auf die Eigenschaften der Haupt-Klasse zugreifen zu können.
Alles klar noch?
Hier ein Beispiel:
Diese Lösung funktioniert auch. Meine Frage lautet aber nur noch:
Kann man das Problem besser lösen?
Ich habe eine Klasse, die ich bei jedem Seitenaufruf instantiere und deren Methoden ich auch bei jedem Seitenaufruf benutze. Unter gewissen Bedingungen ist es allerdings notwendig, dass ich weitere Methoden aufrufen muss.
Anstatt alle Methoden in eine Klasse zu schreiben, von der ich beim regulären Seitenaufruf aber nur einen Bruchteil auch verwende, hatte ich nun vor, alle anderen Methoden von der Haupt-Klasse abzusondern, und in eine separate Datei zu legen, die ich dann include, wenn ich die darin befindlichen Methoden brauche.
Weil man aber nicht einfach so einer Klasse weitere Methoden hinzufügen kann (ich bin jedenfalls auf keine Möglichkeit gestoßen), habe ich mir folgende Lösung ausgedacht:
Alle Methoden, die ich dazuladen möchte, schreibe ich in eine andere Klasse. Diese Klasse instantiere ich zur Laufzeit innerhalb einer der Methoden in der Haupt-Klasse. Dort übergebe ich $this als Parameter-Referenz an die Methoden der gesonderten Klasse, um darüber auf die Eigenschaften der Haupt-Klasse zugreifen zu können.
Alles klar noch?
Hier ein Beispiel:
PHP-Code:
class xyz
{
var $xyz_aaa = 0;
var $xyz_bbb = 0;
var $xyz_ccc = 0;
function xyz()
{
$abc = new abc;
$abc->aaa($this);
$abc->bbb($this);
$abc->ccc($this);
}
}
class abc
{
function aaa(&$xyz)
{
$xyz->xyz_aaa = 111;
}
function bbb(&$xyz)
{
$xyz->xyz_bbb = 222;
}
function ccc(&$xyz)
{
$xyz->xyz_ccc = 333;
}
}
$obj = new xyz;
var_export($obj);
Kann man das Problem besser lösen?
Kommentar