Philipp J.: Objekt von mehreren Besuchern gleichzeitig nutzen

Hallo,

mein Anliegen ist eher nicht-trivial, hoffe aber hier jemanden zu finden der zufällig eine Lösung kennt.

Ich arbeite mit PHP 4.1 (auf Debian Sarge) und beabsichtige, dass ein Objekt (oder auch eine Funktionssammlung) allen Besuchern einer Webseite gleichermaßen zur Verfügung steht.

Der zu erzielende Vorteil soll sein, dass diese Funktionssammlung nicht bei jedem Seitenaufruf neu geladen (und kompiliert?) werden muss.

Vom Ablauf her wird es so sein, dass ein Benutzer eine Seite aufruft und diese Seite wiederum aus dem gemeinsamen Pool von Funktionen (oder Methoden bei einem Objekt) die Funktionen aufruft.

In anderen Worten: Ich möchte mit PHP ein MVC (Modell View Controller) Paradigma umsetzen, ohne dass darunter die Performance leidet bzw. so dass sie sich evtl. sogar etwas steigern ließe gegenüber dem "herkömmlichen" Aufbau mit reinen Scripten.

MfG Philipp J.

  1. Moin!

    Der zu erzielende Vorteil soll sein, dass diese Funktionssammlung nicht bei jedem Seitenaufruf neu geladen (und kompiliert?) werden muss.

    Wenn du Compile-Zeit sparen willst, nutze Produkte wie "PHP Accelerator", die das Kompilat der Skripte in einem Cache halten und so bei erneutem Aufruf schneller zur Verfügung stellen können.

    Oder suche einen PHP-Compiler.

    Es widerspricht aber der Bauart von PHP, eingebundene Skripte NICHT neu zu laden und zu kompilieren.

    Persistente Shared-Objekthaltung ist darüber hinaus ebenfalls nicht vorgesehen - es sei denn, du willst dich mit Shared Memory, Semaphoren, Race Conditions etc. rumschlagen.

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!
  2. Hi,

    In anderen Worten: Ich möchte mit PHP ein MVC (Modell View Controller) Paradigma umsetzen, ohne dass darunter die Performance leidet bzw. so dass sie sich evtl. sogar etwas steigern ließe gegenüber dem "herkömmlichen" Aufbau mit reinen Scripten.

    Du möchtest also ein Server-Modul entwickeln, welches mod_php ersetzt. Be my guest. Wenn Du es gut machst, wird Dir die Welt sicher dafür danken. Mit dem aktuellen mod_php wirst Du mit Deinem Vorhaben meinem Verständnis nach aber ... auf Probleme stoßen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. Hallo,

    es besteht die Mögichkeit alle Funktionen in einem (von der Anwengung/Webserver getrennten) Prozess zu halten und sie indirekt über einen Socket und ein eigenes Protokoll zugängig zu machen. Dabei erstellst Du ein Script, das an einer Adresse der Maschine auf Verbindungen wartet, über das Protokoll den Funktionsnamen und die Parameter erhält, diese Funktion aufruft und die Ausgabe wieder zurückgibt. Alles in allem nicht besonders schwer.

    Gruß aus Berlin!
    eddi

    1. Moin!

      es besteht die Mögichkeit alle Funktionen in einem (von der Anwengung/Webserver getrennten) Prozess zu halten und sie indirekt über einen Socket und ein eigenes Protokoll zugängig zu machen. Dabei erstellst Du ein Script, das an einer Adresse der Maschine auf Verbindungen wartet, über das Protokoll den Funktionsnamen und die Parameter erhält, diese Funktion aufruft und die Ausgabe wieder zurückgibt. Alles in allem nicht besonders schwer.

      Aber auch nicht zwingend performanter (der Overhead des Kompilierens wird durch den Overhead der Socketkommunikation ersetzt). Dafür aber in der Realisierung wesentlich komplexer. Und (nach unseren eigenen Erfahrungen mit PHP4-Serverprozessen auf den SELF-Servern) auch nicht so stabil laufend, wie man sich das wünscht.

      - Sven Rautenberg

      --
      My sssignature, my preciousssss!
      1. Hallo,

        ... Und (nach unseren eigenen Erfahrungen mit PHP4-Serverprozessen auf den SELF-Servern) auch nicht so stabil laufend, wie man sich das wünscht.

        zum einen hatte ich indirekt <http://forum.de.selfhtml.org/archiv/2006/2/t124574/#m803034@tile=schon mal> schon Hilfe angeboten, zum anderen läuft mein SMTP-PHP-Server absolut stabil (ai000.de:25 (Port 587 bastle ich gerade noch) mailto:eddi@ai000.de); und im Übrigen gebe ich Dir Recht.

        Gruß aus Berlin!
        eddi