Heim > Backend-Entwicklung > PHP-Tutorial > Speicherort der PHP-Methode

Speicherort der PHP-Methode

WBOY
Freigeben: 2016-08-18 09:15:46
Original
1156 Leute haben es durchsucht

Bei der Verwendung von PHP ist ein Problem aufgetreten
Zum Beispiel habe ich jetzt drei Tabellen
Benutzertabelle: Benutzer
Produkttabelle: Waren
Gutschein: Ticket
Benutzeradresse: Adresse
Dies entspricht drei Objekten
Benutzer, Waren, Ticket, Adresse
Ich habe jetzt mehrere Funktionen: Gutschein des Benutzers abrufen, verfügbaren Gutschein des Benutzers abrufen, Adressliste des Benutzers abrufen, vom Benutzer gekaufte Artikel abrufen
Das mache ich jetzt

<code class="php">class User extends Model{
    public function oder()
    {
        return OrderRepository::getByUserId($this->id);
    }
    public function successOrder()
    {
        return OrderRepository::getSuccessByUserId($this->id);
    }
    public function cancelOrder()
    {
        return OrderRepository::getCancelByUserId($this->id);
    }
    public function address()
    {
        return AddressRepository::getByUserId($this->id);
    }
    ...
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Warum machen Sie das? Ich denke, es ist sinnvoller, die Vorgänge, die eng mit dem Benutzer verbunden sind, in das Benutzerobjekt zu integrieren. Wie organisieren Sie es normalerweise? Benutzerklasse Zu groß!
Wie gehen Sie normalerweise damit um?

Antwortinhalt:

Bei der Verwendung von PHP ist ein Problem aufgetreten
Zum Beispiel habe ich jetzt drei Tabellen
Benutzertabelle: Benutzer
Produkttabelle: Waren
Gutschein: Ticket
Benutzeradresse: Adresse
Dies entspricht drei Objekten
Benutzer, Waren, Ticket, Adresse
Ich habe jetzt mehrere Funktionen: Gutschein des Benutzers abrufen, verfügbaren Gutschein des Benutzers abrufen, Adressliste des Benutzers abrufen, vom Benutzer gekaufte Artikel abrufen
Das mache ich jetzt

<code class="php">class User extends Model{
    public function oder()
    {
        return OrderRepository::getByUserId($this->id);
    }
    public function successOrder()
    {
        return OrderRepository::getSuccessByUserId($this->id);
    }
    public function cancelOrder()
    {
        return OrderRepository::getCancelByUserId($this->id);
    }
    public function address()
    {
        return AddressRepository::getByUserId($this->id);
    }
    ...
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Warum machen Sie das? Ich denke, es ist sinnvoller, die Vorgänge, die eng mit dem Benutzer verbunden sind, in das Benutzerobjekt zu integrieren. Wie organisieren Sie es normalerweise? Benutzerklasse Zu groß!
Wie gehen Sie normalerweise damit um?

Modellklassifizierung:
Benutzermodell enthält nur benutzerbezogene Artikel
Bestellmodell enthält nur auftragsbezogene Artikel

Achten Sie auf die Aufteilung und Entkopplung des Geschäfts

Es kann auch in Logikschicht, Modelldatenschicht und Serviceschicht unterteilt werden

Die Methoden zum Abrufen von Daten aus jeder Tabelle sind in ihren jeweiligen Modellklassen geschrieben. Wenn Sie Daten aus mehreren Datentabellen abrufen möchten, instanziieren Sie die den Tabellen entsprechenden Modelle im Controller und rufen Sie ihre jeweiligen Methoden auf, um die Daten abzurufen . Daten in Controller integrieren.

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage