Sie haben die Wahl zwischen Daten, die für Ihre Anwendung von grundlegender Bedeutung sind, und Daten, die für eine bestimmte Modell-Member-Funktion zufällig sind. Dinge, die Sie überall verwenden, sollten garantiert sein (Basismitglieder, Globals usw.), und Dinge, die nur in der aktuellen Funktion verwendet werden, sollten Parameter sein. Sie werden feststellen, dass die Verwendung implizierter Variablen (wie $this->session->userdata
) an vielen Stellen in Ihren Modellen und Ansichten werden schnell zu Spaghetti und sind unvorhersehbar, wenn Sie sie nicht richtig bootstrappen.
In meinen CodeIgniter-Projekten füge ich ein benutzerdefiniertes Basismodell und einen Controller hinzu, die vom CI-Framework erben und ihre eigenen Mitgliedsdaten hinzufügen, die überall in der Anwendung verwendet werden. Ich verwende diese Basisklassen, um Daten und Funktionen bereitzustellen, die von allen meinen Modellen und Controllern verwendet werden (einschließlich Dingen wie userID
). Im Konstruktor von my_base_controller
rufe ich den CI-Basiskonstruktor auf und richte Daten ein, die alle meine Controller und Ansichten benötigen. Dies garantiert vorhersehbare Standardwerte für Klassendaten.