Ich möchte mich in diesem Punkt klar ausdrücken. Ich bin mit Codeigniter.
Was/welche ist die bessere/richtige/standardmäßige/geschätzte Art des OOP-Designs in Codeigniter bei der Erstellung von Webanwendungen?
Im Allgemeinen,
I. Erstellen Sie eine benutzerdefinierte Klasse wie User und haben eine Login-Funktion? Wie,
class User{
var $db, $id, $username, $password, $role; //have all user attributes here
function __construct() {
//instance for accessing the database
$this->db =& get_instance();
}
public function login(){
//do the login here
$this->db->load->model('user_model');
$success = $this->db->user_model->login($this->username, $this->password);
//isn't this redundant using models? or should I rename the model function name like checkLogin?
return $success;
}
//other class functions
}
OR
II. Direktes Aufrufen einer Anmeldefunktion im Modell vom Controller aus, ohne ein Benutzerobjekt zu erstellen?
O_o
In Schema 1 mache ich das Modell zu einer Abfrage NUR in der Datenbank. Ich kann auch das Objekt "User" vererben wie bei "Client" und "Admin" und spezifische Funktionen für jedes Objekt hinzufügen. Ich habe den Vorteil, dass der CI-Controller sich auf das Layout und die Übergabe von Variablen an die Ansicht konzentrieren kann, was in erster Linie sein Zweck ist (ich bin mir nicht ganz sicher), und dass meine benutzerdefinierten Klassen/Objekte die Operationen in meiner Web-App übernehmen können. BUT Ich fühle eine Redundanz in meiner Login-Funktion, wo ich eine andere Login-Funktion im Modell aufgerufen habe. Ist das gut?
Während in Schema 2, ist es richtig, lassen Sie meine Controller alle Operationen wie Login, registrieren, oder erstellen Sie ein Protokoll UND Empfangen von Input-Posts und Übergabe von Variablen an die Ansicht behandeln?
Ich brauche wirklich einen Leitfaden. Meine OO Fähigkeiten müssen wachsen.
Ich danke Ihnen vielmals!