php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.03.2009, 15:52  
Neuer Benutzer
 
Registriert seit: 16.02.2009
Beiträge: 5
scco befindet sich auf einem aufstrebenden Ast
Standard Architektur Caching + Template bei comments / sites

huhu phpler,

ich häng irgendwo zwischen spagetti code und ersten mvc versuchen, und werde bald mit jemandem eine community coden müssen - die auch recht viel aushalten soll . hier mache ich mir seit geraumer zeit gedanken über ein problem :
die core seite die oft aufgerufen wird ist so eine art "youtube video site" mit friends, comments, listen, video.

und ich überlege wie man so ein request einer seite am schlausten zusammensetzt von der logik. hab ich hier irgendwo einen denkfehler ? in meiner jetzigen logik müsste ich bei jedem comment post, und auch anderen änderungen ja alle commentseiten neu durchrendern lassen ?

teilcashing also innerhalb der gecasheden seite nur die comments seite 1- 100 nochmal zu cashen erscheint mir auch kompliziert.

und nicht cashen der comments erfordert ja dann auch wieder db requests womit mir ja auch nicht geholfen ist.
und wenn cash - dann müsste ja trotzdem noch gecheckt werden OB diese gecashede seite nun noch eintrag 80 ist, oder schon eintrag 81 dazu gekommen ist und man nicht den cash laden soll , sondern die page (pages) neu generieren muss...


habe ich was grundsätzliches übersehen ? wie realisieren das größere seiten von der logic überhaupt?

hier mal mein bisheriger denkansatz :

logic für rendering /request einer seite :


benötigt diese seite einen eingeloggten user?
ja -> ist eine session (user,pass) aktiv
nein - > redirect login site

ist diese seite eine dynamic site mit datenbank inhalten?
ja -> existiert eine gecashte html seite und ist der content der gecasheten seite aktuell?
(dies ist wichtig für zb. subseiten 1 2 3 4 5 comments .... )

ja -> lade cashed html site in einen string $contentString

nein ->
suche in einer art "controller" die logic für die entsprechende seite raus
arbeite die einzelnen "module" ab :

schleife : - lade template fragment (zb 1 comment template) in templateString
- lade datenbank inhalte in contentString
- replace platzhalter in templateString mit contentString
- packe die replaced stings alle an einander ( $content .= ... so eine art ADD )


speicher den string als gecashete version.
zb. songid+commentseitenid.html

gebe den $contentString aus.

nein -> lad die entsprechende seite in den $contentString und gib sie aus ...
scco ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.03.2009, 17:46  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo scco,

da du deine Anforderungen recht gut zu kennen scheinst, ist es Zeit, das Design ein wenig vom Kopf auf Papier zu bringen. Eine Community ist kein Kinderspiel, hier werden viele Daten gehalten, viele Beziehungen müssen definiert und wollen behandelt sein. Nach dem Aufschreiben käme Schritt 2 meines Footers: Review. Wenn du magst, kann ich da Diskussionspartner sein.

Was die technische Umsetzung angeht, habe ich 3 Punkte aus deinem Post gelesen. Hier ein paar Anmerkungen dazu:

1. Templates und MVC:
Du möchtest Templates rendern, über Controller den Output steuern können und ein View sollte cachebar (komisches Wort) sein. Hierzu kannst du dir mal View based caching - ein HOWTO :: Adventure PHP Framework (APF) oder den gleichnamigen Artikel im PHP-Journal ansehen.

2. Request-Handling:
Der Request soll möglichst so gestaltet sein, dass auch Teilbereiche separat behandelt/angesteuert werden können. Dies ist IMHO nur dadurch möglich, dass du die Struktur sehr modular wählst und ein Mittel zur Verfügung hast, das dir dieses Unterstützt. Sinnvollerweise solltest du auch die Möglichkeit haben damit den Aufbau deiner GUI zu beeinflussen (Pageflows, Anzeige unterschiedlicher Perspektiven deiner Seite, ...). Hierzu kannst du dir mal Frontcontroller :: Adventure PHP Framework (APF) und Frontcontroller-Tutorial :: Adventure PHP Framework (APF) ansehen.

3. Applikationslogik:
Hier gibt es IMHO einige Dinge, die du zentralisieren kannst. Das komplette Kommentar-Handling lässt sich schön in ein Modul auslagern, das einfach in die Seite eingebunden wird. Hierzu kannst du dir unter Kommentar-Funktion :: Adventure PHP Framework (APF) ein paar Anregungen holen.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 06.04.2009, 19:35  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo scco,

konnte ich dir helfen oder sind noch Fragen offen? Falls ja, dann her damit!

Viele Grüße,
Dr.E.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 14.04.2009, 02:03  
Neuer Benutzer
 
Registriert seit: 16.02.2009
Beiträge: 5
scco befindet sich auf einem aufstrebenden Ast
Standard

huhu, ney nich so richtig - das war mir leider alles zu hoch.
bin damals noch davon ausgegangen das ich mit einem anderen
top coder zusammen arbeiten werde - der muss jedoch leider
an der flash app arbeiten die zur community gehört.

hatte inzwischen über 10 coder gefragt, und alle haben mir
extrem unterschiedliche dinge geraten - aber keiner ist wirklich
auf die eigentliche frage eingegangen - alles sehr sehr schwammig
und vor allem wiedersprüchlich in der gesamtheit leider.

inzwischen bin ich bei knapp 60% der gesamten community
und programmiers in "modulen" die aus funktionen bestehen,
wo ich eine menge recycle - bzw mir so meine "ordnung" erhalte.

und ich machs ohne html cashing. wenn die sache ein erfolg wird,
und wir dann an die grenzen von einem server kommen
(die ich bei ca 50.000 - 100.000 hits am tag sehe)
lass ich es einfach profis neu coden ...

facebook hat ja scheinbar allein 700 cashing server ...
omg
scco ist offline   Mit Zitat antworten
Alt 14.04.2009, 14:43  
Erfahrener Benutzer
 
Registriert seit: 08.04.2009
Beiträge: 324
Creator befindet sich auf einem aufstrebenden Ast
Standard

Bei solchen recht Komplexen Applications, braucht man vieles an Wissen.

Da alle deine Probleme schon sehr viele Leute vorher hatten, habe dies sich auch sehr gute Lösungswege bzw. Muster einfallen lassen.

Mich hat das Buch PHP Design Pattern sehr viel weiter gebracht.
Das solltest du dir mal anschauen.
Creator ist offline   Mit Zitat antworten
Alt 14.04.2009, 22:38  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo scco,

ich kann mich Creator nur anschließen. Große Projekte sollten mit erfahrenen Entwicklern und Administratoren abgehandelt werden, sonst gibt es schnell ein böses Erwachen.

Was das Caching angeht, so gibt es sicher viele Möglichkeiten - angefangen von einfachen Applikationscaches bis hin zu einem Proxy. Alle erfüllen jedoch einen dedizierten Bereich. Um den Einsatz und die Sinnhaftigkeit beurteilen zu können braucht es ein gutes (Software-)Design und genaue Anforderungen. Andernfalls kann - ich schließe mich hier nicht aus - man dir nur schwammig auf deinen Fragen antworten.

Entweder du gibts mehr von deinem Projekt preis oder du "bezahlst" mit unkonkreten Aussagen.

Viele Grüße,
Dr.E.

PS: nach 4 Jahren Betriebserfahrung kann ich mir nicht vorstellen, dass man 50k - 100k Hits(!) nicht mit einem sehr geringen Aufwand abfackeln kann. Aus dem Bauch heraus sollten dafür nicht mehr als 1 Proxy, 2 Webserver und ebensoviele Datenbank-Server notwendig sein. Es ist also alles eine Frage der Konfiguration!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Template Parser PHP-Fortgeschrittene 9 06.10.2004 23:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
architektur templates, wie viele request sollte webseite aushalten, architektur template, architektur caching

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:41 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum