kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: PHP Trennung Logik und Design: Best Practices?

    geschrieben von wolkenlos0

    ggamee schrieb:
    Du hast hier tatsächlich 2 Seiten zu betrachten: Client und Server. Dein Server ist in PHP geschrieben, tut allerdings nichts anderes als Informationen zu senden oder zu verarbeiten. Der Client wird dabei in HTML/CSS/Javascript geschrieben. Ich glaube in ASP.NET ist es nicht so. Doch fangen wir bei der einfachen Sache an:
    Der Server ist in PHP geschrieben. Mit PHP selbst lässt dich das MVC Design sehr schön umsetzen. Du schreibst einen Controller, welcher die entgegengenommenen Daten auswertet und das Programm entsprechend steuert, bzw die Modelle entsprechend läd und Verknüft. Deine Modelle entsprechen eher Dateninterfaces, welche du zur Verarbeitung nutzt. Eines dieser Dateninterfaces ist meistens eine Template Engine. Diese läd die Views, welche in seperaten Files gehalten werden, und verarbeitet sie, entsprechend dem, was der Controller vorgibt, und was an Daten von den anderen Modellen rein kommen. Diese Views entsprechen dann am Ende dem Output. Dieser Output kann alles mögliche beinhalten.
    Der Client empfängt die Daten und Interpretiert sie. HTML und CSS werden zur Darstellung verwendet, Javascript zur Automatisierung und Eventbehandlung. Hierauf geh ich allerdings nicht näher ein, da diese Seite auch sehr Umfangreich währe, und du nach PHP fragtest. Deine Events (onClick, onLoad usw) musst du allerdings alle im Clienten behandeln, denn dieser wirft diese ja auch. Hier brauchst du also auch noch Javascript.

    Das entspricht auch ungefähr dem MVC4-Framework von ASP.NET:
    Der URL-Aufbau ist dort /Controller/Funktion(.aspx)?Parameter
    Beim Clientaufruf wird dann in der richtigen Controllerklasse die entsprechende Funktion mit den Parametern aufgerufen. Dort verarbeitet man die Daten und erzeugt ein Model. Anschließend ruft man die Funktion Renderview("Viewname", Model); auf. Falls man als Viewtyp Razr hat, hat man dort praktisch Standardhtml mit CSS/JS und vorgefertigte Viewobjekte wie Date/Kalenderpicker. Per inline-Code fügt man die Daten aus dem Model ein.

    ggamee schrieb:
    ASP.NET lässt sich in meinen Augen nicht mit PHP vergleichen. Es sind vom Prinzip her sehr unterschiedliche Sprachen. Sie erfüllen einen ähnlichen Zweck, aber sind grundlegend unterschiedlich. Für PHP solltest du darum noch einmal bei 0 Anfangen, und aus deinen Kenntnissen dann kannst du schneller die Logiken erschließen. Wenn du dich bereit fühlst für große Projekte, um mal rein zu schauen, schau dir dieses Projekt an:https://github.com/Basti-sama/Bengine , das ist, und das werden wohl viele sagen, PHP Code in höchster Qualität und Komplexität (wobei, wenn man nen bissel drin ist, ists garnicht sooo komplex, aber es ist doch ein erstaunliches Konzept, welches am Anfang einfach nur überwältigt). Das ist ein Beispiel, wie man es nach Jahren an Praxis umsetzen würde.

    Mein Tipp darum: Fang bei den Basics an, und schau dir erstmal das Grundkonzept an, denn dieses ist schon ein wenig anders.

    Liebe Grüße


    Einfach oder anfängergeeignet kann man Bengine nicht nennen, nachdem ich eine halbe Stunde mal gesucht hab, um die Controller-Datei zu finden^^
    Nach dem ersten reinschauen nach kommt Bengine SPA.NET MVC4 sehr nahe, nur dass der "Meta-Controller" dort nicht sichtbar ist und einiges von der IDE abgenommen wird.
    Bis jetzt hab ich mir in PHP immer so beholfen, dass ich für jede Controllerfunktion eine eigene PHP-Datei gemacht hab, in der das Modell befüllt habe und am Schluss die View aufgerufen hab, wo ich am Beginn der Seite eine Überprüfung hatte, um sicher zu stellen, dass die Seite nicht direkt aufgerufen wird. weiters hab ich da includes gemacht für Loginfelder etc. die auf jeder Seite gleich sind.
  • in: Im Div-Container den Text aus einer anderen Datei anzeigen

    geschrieben von wolkenlos0

    eine weitere Möglichkeit wären Frames, aber die gelten meines Wissens nach inzwischen als verpönt.
    Bei Ajax ist das Problem, wenn Javascript nicht aktiviert ist. Das ist besonders ein rechtliches Problem, wenn es sich um den Link zum Impressum handelt.
    Sonst bleiben nur Serverseitige Skriptsprachen wie PHP, ein CMS mit Masterpage oder manuelles editieren aller Seiten.
  • in: Spalteninhalt als Varibale speichern

    geschrieben von wolkenlos0

    Stimmt, das mit dem GET habe ich übersehen.
    Generell finde ich verwenden von Sessions einfacher und der User kann sie nicht so einfach manipulieren, wobei das sicher auch Geschmacksfrage ist.
  • in: PHP Trennung Logik und Design: Best Practices?

    geschrieben von wolkenlos0

    ZB. bei Webforms gibt es so etwas bei jedem Modul (Klassen wie Formularen, Buttons, ... und die Webseite an sich) Events wie OnPageLoad, OnClick, OnOutput(?), etc. die in verschiedenen Stadien aufgerufen werden.
    In ASP.NET MVC gibt es auch solche Ereignisse und man baut ein Modell das man dann in der View-Datei ausgibt.
    Gibt es ähnliches oder Best Practices dazu auch in PHP bzw. zur Trennung in mehrere Dateien?
  • in: Servercluster erzeugen

    geschrieben von wolkenlos0

    Hauptsächlich gilt es 2 Ansätze bei Cluster zu unterscheiden: Lastverteilung und Grid (oder wie man die nennen möchte)
    Unterschiede/Hauptmerkmale(nicht immer so eindeutig in der Praxis):
    Lastverteilung:
    geringe Latenz (User ruft Webseite auf und möchte sofort Ergebnis sehen)
    jeder Server arbeitet einen anderen Request ab
    Grid:
    möglichst große Rechenleistung
    alle Server arbeiten an der selben Aufgabe, die auch Minuten/Stunden/Tage dauern kann bis ein Ergebnis sichtbar ist

    das war nur zur Erklärung, da die meisten vorigen Antworten Richtung Grid gingen

    Beispielansätze zur Lastverteilung bei Webservern:
    ein oder mehrere Loadbalanceproxyserver: alle Userrequests laufen über diese(n) und dieser verteilt die Anfragen an die anderen Server
    ein bis mehrere Webserver: beantwortet Userrequests, erzeugt HTML etc., speichert aber keine Sessions oÄ., da Anfragen vom selben User an einen anderen Server kommen können
    ein bis mehrere Datenbankserver: gespiegelt, geclustert, horizonal/vertikal partitioniert je nach Anforderung/Möglichkeiten der Datenbank
    State-Server: speichert die Sessions etc. der Webserver

    je nach Anforderung können die Sateserver auch in der Datenbank sein oder bei nur einem Webserver oder Loadbalancer mit Usererkennung auch im Webserver
    Bei Nutzung von mehreren Servern des jeweiligen Typs kann man bei richtiger Konfiguration auch Redundanz schaffen (zusätzlich zu Sachen wie mehrere Netzteile, RAID, ...).
  • in: Verschlüsselung einer Schlüsseldatei

    geschrieben von wolkenlos0

    Wie du anscheinend schon herausgefunden hast gilt folgendes:
    Userkey entschlüsselt Masterkey, Masterkey entschlüsselt Datei.
    Ich kenn nicht die Details von Fairplay, aber nach Wikipedias Informationen und meinen Informationen über ähnliche Systeme kann ich folgendes Vermuten:
    Die Software erzeugt beim ersten Start einen Key, der auf jedem Computer möglichst einmalig ist und speichert ihn verschlüsselt ab. Mit diesem ist es möglich, die Userkeys zu entschlüsseln.
    Um den Computerkey zu entschlüsseln wird ein im Programm einprogrammierter Key verwendet. Um diesen Key zu schützen werden diverse Anti-Reverse-Engineering-Methoden eingesetzt (Key selbst verschlüsselt/versteckt, Antidebugging-Mechaniscmen, Exe-Crypter, ...).
    Eventuell geht das ganze auch ohne Computerkey.
  • in: Spalteninhalt als Varibale speichern

    geschrieben von wolkenlos0

    Eine weitere Möglichkeit wären Sessions.
    Wenn der User eine andere Seite aufruft/seine Daten eingibt, speicherst du diese Informationen serverseitig in der Session. Wenn ein User dann das Bild oÄ. aufruft, kannst du auf diese Informationen zugreifen.

    Vorteil:
    geht auch, wenn der User keine Cookies aktiviert hat
    die ganze Session muss nicht bei jedem Seitenaufruf hin und her übertragen werden
    überlebt IP-Wechsel

    Nachteil:
    Session laufen je nach Servereinstellung ca. nach 20Minuten bis mehrere Stunden ohne Erneuerung (zB. bei einem Seitenaufruf auf deiner Homepage) ab
  • in: PHP Trennung Logik und Design: Best Practices?

    geschrieben von wolkenlos0

    Hallo,
    ich komme von ASP.NET Webforms und ASP.NET MVC. und habe schon kleinere Sachen in PHP gemacht.
    Da dort mehr oder weniger stark eine Trennung von Logik und Design vorgeben wird und ich dies auch hilfreich finde, wollte ich fragen, welche Best Practices/Vorgaben es in dieser Richtung in PHP gibt.
    Falls relevant: Zur Zeit verwende ich Eclipse mit PHP Plugin zum entwickeln und bin gerade dabei, objektorientiertes PHP zu lernen.
    Hoffe ihr könnt mir helfen oder zumindest verschiedene Meinungen dazu sagen.
    schöne Grüße an einem regnerischen Tag,
    Wolkenlos

Login zum Webhosting ohne Werbung!