PHP: "Global" Zählen

Aktuelle situation:

  • Ich habe die aktuelle version von meinem MVC-Framework, das verwendet Klassen als Controller.
  • Ich habe einige "vintage" - Module von meinem alten MVC-Framework, welches mit einfachen, flachen enthält als Controller.

Sehr vereinfacht heißt das:

Neue Version:

<?PHP
class blaController extends baseController {
    private $intVar;

    function dosomethingFunction() {
        $this->intVar = 123;
        $this->view('myView');
    }
}
?>

Alte Version:

<?PHP
$globalVar = 123;
//view "controllername" is automatically shown
?>

Ich bin jetzt versucht, zu schreiben eine wrapper nutzen zu können, mein Alter Controller in meinem neuen MVC, ohne alles umschreiben. Dazu habe ich eine "wrapper" - controller:

class wrapController extends baseController {
    function dosomethingFunction() {
        require 'old_dosomething.function.php';
        $this->view('old_dosomething_view');
    }
}

(Noch einmal: Das ist sehr, SEHR vereinfacht - nur auf die Idee kommen über. Nicht die tatsächlichen code.)

Das problem bei diesem Ansatz ist, dass die bisher Globale variable $globalVar jetzt existiert nur innerhalb der Methode "dosomethingFunction" kann nicht zugegriffen werden, indem die view.

Wäre dies nicht der Fall sein, wenn ich erzwingen könnte, das verlangen, sich zu Verhalten wie "im globalen Rahmen" so an, dass $globalVar würde wieder verfügbar sein, im globalen Rahmen.

Also: gibt es eine Möglichkeit, Sie zu erreichen "require_global" oder etwas ähnliches?

(Eine Lösung für mein problem wäre zu ändern, meinen alten Controller, mit zu beginnen eine Reihe von "globalen" Befehle, aber ich würde lieber eine Lösung, wo ich nicht so sehr verändern, dass der alte code.)

(Hinweis: Bitte erzählen Sie mir nicht, dass die GLOBALS sind schlecht. Es ist völlig verfehlt den Punkt dieser Frage. Einfach akzeptieren, dass es ist eine Anforderung, halten einige alte code funktioniert in einer neueren, saubereren Umwelt.)

InformationsquelleAutor BlaM | 2009-04-15

Schreibe einen Kommentar