Ergebnis 1 bis 9 von 9

Thema: Benutzung der Klasse Model und findby

  1. #1
    Contao-Nutzer Avatar von Jumpingpixel
    Registriert seit
    15.10.2009.
    Ort
    Nidderau
    Beiträge
    32

    Standard Benutzung der Klasse Model und findby

    Hallo zusammen,

    ich bin gerade dabei mein erstes Modul für Contau zu schreiben, dabei habe ich mir eine Klasse erstellt und diese von Model abgeleitet um meine Datenbankabfrage zu bündeln. Meine erste Frage ist, kann ich das so machen oder handel ich mir mehr Arbeit ein als nötig.

    Die nächste Frage betrifft die Methode findby, ich wollte die Methode einsetzten um Datensätze mit einer bestimmten pid zu suchen, dabei ist mir aufgefallen das findby nur greift wenn genau ein Datensatz gefunden wurde (siehe Code weiter unten). Bevor ich aber was in den Bugtracker schreibe bzw. eine Vorschlag mache das zu ändern wollte ich mal ein paar erfahrene Entwickler fragen ob ich etwas übersehen habe. Im Moment habe ich das Problem so gelöst, dass ich selber eine eine Methode findByPid geschrieben habe, allerdings finde ich das etwas unschön da es ja eine ähnlich Methode im Kern schon gibt.

    PHP-Code:
    public function findBy($strRefField$varRefId)
    {
        
    $this->blnRecordExists false;
        
    $this->strRefField $strRefField;
        
    $this->varRefId $varRefId;

        
    $resResult $this->Database->prepare("SELECT * FROM " $this->strTable " WHERE " $this->strRefField "=?")
                                    ->
    executeUncached($this->varRefId);

        if (
    $resResult->numRows == 1)
        {
            
    $this->resResult $resResult;
            
    $this->arrData $resResult->fetchAssoc();
            
    $this->blnRecordExists true;

            return 
    true;
        }

        return 
    false;


  2. #2
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.622
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Die Klasse Model brauchst su nur ihn seeehr seltenen Fällen. Dabei entspricht ein Model immer GENAU EINEM Datensatz, weshalb dein Ansatz bereits falsch ist.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  3. #3
    Contao-Nutzer Avatar von Jumpingpixel
    Registriert seit
    15.10.2009.
    Ort
    Nidderau
    Beiträge
    32

    Standard

    Oh dann habe ich das wohl falsch verstand. Ich bin davon ausgegangen das ein Model, ähnlich wie in Zend-Framework oder CakePHP die Schnittstelle zu Datenbank ist.

    Ich glaube ich werden mir mal catalog oder eine ähnlich Erweiterung ansehen und kucken wie es da gemacht wird.

  4. #4
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.622
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    In Isotope eCommerce benutzen wir die Model-Klasse an einigen Stellen, aber die Klasse birgt immer auch Risiken. So kannst du z.B. nicht auf die normalen Controller-Funktionen zum generieren von URLs zugreifen. Für ein normales Modul benötigst du diese Klasse nicht...
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  5. #5
    Contao-Nutzer Avatar von Jumpingpixel
    Registriert seit
    15.10.2009.
    Ort
    Nidderau
    Beiträge
    32

    Standard

    Danke für den Tip, ich habe in meine Erweiterung das Model erst mal wieder entfernt und mach die Abfragen dort wo sie gebraucht werden. Im Moment ist das noch nicht unbedingt wild da es nur 3 Abfragen werden.

    Trotzdem bin ich noch auf der Suche wie man am besten eine Trennung von Model und Controller hin bekommt ohne alles selber schreiben zu müssen.

    Isotope werde ich mir mal ansehen, allein weil ich ein System für kleinere Shops bin.

    Grüße,
    Alex

  6. #6
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Was willst Du denn genau machen? Ich kapier Deinen Wunsch nicht ganz
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  7. #7
    Contao-Nutzer Avatar von Jumpingpixel
    Registriert seit
    15.10.2009.
    Ort
    Nidderau
    Beiträge
    32

    Standard

    Ich will einfach eine sauber Trennung nach dem MVC-Prinzip.

    Also alles was sich mit besorgen, speicher, und verarbeiten der Daten zu tun hat kommt ins Model der jeweiligen Tabelle, der Controller (Modul) fragt beim Model nach Daten und gibt die dann an der View (Templates) weiter der wiederum die Daten darstellt.

    Also zwei Teile sind bei Contao ja schon da, V (Template) und C (Modul) fehlt noch das Model.

    Im Prinzip kann man das auch selber schreiben, schön wäre aber wenn es schon eine Klasse geben würde von der man ableiten kann so das man Methoden wie findall, findby, update und save nicht jedesmal neu schreiben muss.

    Grüße
    Alex

  8. #8
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Naja, was soll ich sagen? Die Klasse Model hat halt bei Contao eine andere Funktion
    Je nach Framework entwickelt man mit anderen Mittel und somit Klassen und Methoden
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  9. #9
    Contao-Nutzer Avatar von Jumpingpixel
    Registriert seit
    15.10.2009.
    Ort
    Nidderau
    Beiträge
    32

    Standard

    Wie schon gesagt bin ich gerade am testen.

    In den vielen Fällen muss ich mir eh überlegen ob eine Trennung wirklich Sinn macht, da es sich um 2-3 Abfragen handelt die man dann auch fast schon an der Stelle mach kann wo man sie benötigt. Und alles was größer wird bedarf dann sowieso eine genauer Planung.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Benutzung auf dem iPad?
    Von ante im Forum Was kann Contao?
    Antworten: 28
    Letzter Beitrag: 06.09.2015, 21:56
  2. [Gallery]- Allgemeine Fragen zur Benutzung
    Von DanielGrosse im Forum Sonstige Erweiterungen
    Antworten: 2
    Letzter Beitrag: 21.07.2010, 13:42
  3. Rechtliche Lage bei der Benutzung von Bildern
    Von Alexander im Forum Off Topic
    Antworten: 5
    Letzter Beitrag: 21.04.2010, 18:16
  4. externe Passwort-"Benutzung"
    Von th2409 im Forum Entwickler-Fragen
    Antworten: 6
    Letzter Beitrag: 12.01.2010, 09:32
  5. Frage zur Benutzung des Moduls Pageimage
    Von lino16 im Forum Sonstiges zu Contao
    Antworten: 1
    Letzter Beitrag: 11.12.2009, 20:42

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •