Sql query auslagern?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • lalaland
    antwortet
    KK danke.

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Im Repository.

    Einen Kommentar schreiben:


  • lalaland
    antwortet
    @h3ll,
    Klär mich auf wo dann ?
    Mfg Lalaland

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Zitat von lalaland Beitrag anzeigen
    Ich präzesiere mich in meiner Ausage. Funktionen um Daten in einer Dateinbank zu speichern.
    Die sind nicht im Model.

    Einen Kommentar schreiben:


  • lalaland
    antwortet
    Zitat von h3ll Beitrag anzeigen
    Das Model hat keine Datenbankfunktionen.
    Ich präzesiere mich in meiner Ausage. Funktionen um Daten in einer Dateinbank zu speichern. Aber deine Ausage hat mir jetzt nicht veraten ob ich sonst richtig lag...
    Mfg Lalaland

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Das Model hat keine Datenbankfunktionen.

    Einen Kommentar schreiben:


  • lalaland
    antwortet
    Hm... Habe ich das mit dem MVC jetzt richtig verstanden. Hier ein kleines Beispiel: Ich hole mir Daten aus einer HTML Form speicher die in einer Kontänerklasse. Dort kann man schon Fehler abfangen die dann in der Kontrollklasse behandelt, wenn es keine Fehler gibt ruft man in der Kontrollklasse Datenbankfunktionen aus dem Modelbereich auf welche Daten verarbeiten. Auf dem Umgekehrten weg kann man die Kontänerklassen benutzen um Daten von der Datenbank in die Sicht der Seite zu transportieren.
    Mfg Lalaland

    Einen Kommentar schreiben:


  • lalaland
    antwortet
    Hm.. jo dann mal danke für die Hilfe ich glaub ich werd noch mal ein Buch zum Thema wälzen denke das mir da wohl noch Grundlagen fehlen.. Für vorschläge bin ich immer offen.
    Mfg Lalaland

    PS: MVC hilft mir bei der ganzen Sache weiter !
    Zuletzt geändert von lalaland; 06.06.2011, 12:23.

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Das Repository beinhaltet die Speicher- und Ladelogik. Es ist also genau dafür zuständig. Wohin das Repository hinspeichert, kann dem Model egal sein. Es kann eine MySQL-Datenbank sein, es kann eine PostgreSQL-Datenbank sein, es kann aber auch eine XML-Datei oder ein Webservice sein. Um all das muss sich das Model nicht kümmern.

    Einen Kommentar schreiben:


  • lalaland
    antwortet
    Zitat von AmicaNoctis Beitrag anzeigen
    Weil du sonst bei jeder Änderung an der Datenbank alle diese Klassen umschreiben musst und diese Klassen so konkrete Dinge repräsentieren, dass sie nichts mit irgendwelchem Code auf SQL-Ebene zu tun haben wollen. Beispiel: Was interessiert es die Produkt-Klasse, ob Bezeichner in der Datenbank in Backticks (`...` MySQL) oder in Gänsefüßchen ("..." Postgres) stehen müssen? Absolut nichts und das zu recht.
    Sehe ich das dann richtig das die Klasse quasi eine Art Interfece zwischen Sqlanweisungen und dem rest des Codes darstellt?

    Einen Kommentar schreiben:


  • AmicaNoctis
    antwortet
    Zitat von lalaland Beitrag anzeigen
    Und warum darf ich das nicht in der Contaierclass machen ?
    Weil du sonst bei jeder Änderung an der Datenbank alle diese Klassen umschreiben musst und diese Klassen so konkrete Dinge repräsentieren, dass sie nichts mit irgendwelchem Code auf SQL-Ebene zu tun haben wollen. Beispiel: Was interessiert es die Produkt-Klasse, ob Bezeichner in der Datenbank in Backticks (`...` MySQL) oder in Gänsefüßchen ("..." Postgres) stehen müssen? Absolut nichts und das zu recht.
    Zuletzt geändert von AmicaNoctis; 06.06.2011, 11:26.

    Einen Kommentar schreiben:


  • lalaland
    antwortet
    Zitat von AmicaNoctis Beitrag anzeigen
    Genau, worauf du dabei aber unbedingt verzichten solltest, ist jegliche Anbindung dieser Klassen an die Datenbank. Diese Klassen sollten relativ dumm sein und nichts anderes können, als die Daten, die ihnen eingehämmert wurden, wiederzugeben. Auf keinen Fall dürfen Sie sich diese Daten selbst besorgen oder Änderungen in die Datenbank zurückschreiben können.
    Aha und die setze ich dann dazu ein um mir die aus einer anderen Klasse die Daten aus der Datenbank abzugreifen... Und warum darf ich das nicht in der Contaierclass machen ?

    Einen Kommentar schreiben:


  • AmicaNoctis
    antwortet
    Zitat von h3ll Beitrag anzeigen
    Wenn du es so siehst, kann ja gleich auf jeden sauberen Ansatz verzichten, weil es eh nur kurzlebig ist
    [...]
    Wenn du damit nur kurzlebige Anwendungen programmierst und danach alles wegwirfst, verzichtest du auf diesen Vorteil.
    So ist es ja nun auch nicht, aber ich dachte, das Repository ist eher so eine Art Application Lifetime Cache, der ja bei PHP-Anwendungen nicht so sehr viel Sinn machen würde. Offenbar ist das wohl nicht so und ich werde mich mal etwas genauer damit beschäftigen.

    Einen Kommentar schreiben:


  • AmicaNoctis
    antwortet
    Genau, worauf du dabei aber unbedingt verzichten solltest, ist jegliche Anbindung dieser Klassen an die Datenbank. Diese Klassen sollten relativ dumm sein und nichts anderes können, als die Daten, die ihnen eingehämmert wurden, wiederzugeben. Auf keinen Fall dürfen Sie sich diese Daten selbst besorgen oder Änderungen in die Datenbank zurückschreiben können.

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Zitat von AmicaNoctis Beitrag anzeigen
    Hm, da PHP-Anwendungen meist sehr kurzlebig sind, habe ich bisher keinen Nutzen darin gesehen, das Repository Pattern zu benutzen, aber danke für den Denkanstoß.
    Wenn du es so siehst, kann ja gleich auf jeden sauberen Ansatz verzichten, weil es eh nur kurzlebig ist

    Ich arbeite an Anwendungen mit einer Entwicklungszeit von mindestens einem Jahr. Wäre ziemlich schade, wenn man diese Arbeit nach 2, 3 Jahren wieder wegwirft und von vorne beginnt.

    Mal davon abgesehen ist ja der große Vorteil von OOP die Wiederverwendbarkeit. Wenn du damit nur kurzlebige Anwendungen programmierst und danach alles wegwirfst, verzichtest du auf diesen Vorteil.

    Einen Kommentar schreiben:

Lädt...
X