[PHP 5.0] MVC het optimaliseren van de applicationcontroller

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo, ik heb al wat ervaring met het gebruik van java en jsp's. Alleen nu ga ik een website maken in php 5.0. Ik wil voor deze website het mvc model gebruiken, alleen heb ik al heel wat onderzocht over php, maar begrijp ik een aantal dingen nog niet.
Voor het afhandelen van de request's wou ik een klasse maken die al deze request's opvangt en aan de hand daarvan mbv van het Action-klassen een model opbouwen, deze naar de view sturen en de view teruggeven. Mijn onduidelijkheden hierover zijn:

Voor deze applicationcontroller is mijn eerste gedachtte het gebruik van een singelton, alleen snap ik hoe dit in php gebeurt, is het niet zo dat bij elk verschillend request alles opnieuw wordst opgebouwdt, zodat je objecten niet kan laten blijven bestaan en kan laten hergebruiken?

Ik heb ook gelezen dat je dingen kan opslaan in de globals, alleen raad iedereen dat af. Is dit omdat het niet netjes is, of omdat de website er een stuk trager van wordt?

En als laatste, als ik dit ga implementeren, krijg ik wel dat alle request's naar 1 bepaalde pagina worden gestuurd. Is dit niet slecht mbt performance?

ik hoop dat ik duidelijk ben geweest.

Acties:
  • 0 Henk 'm!

Verwijderd

Elke keer dat je pagina wordt opgevraagd wordt je script opnieuw gestart. Iets als:
PHP:
1
2
$bla++;
echo $bla;

zal dus de hele tijd 1 laten zien, hoe vaak je de pagina ook laad.

Zou je niet eerst eens beginnen met kleine scriptjes voordat je aan een website begint?

Acties:
  • 0 Henk 'm!

  • Guldan
  • Registratie: Juli 2002
  • Laatst online: 11:30

Guldan

Thee-Nerd

Euh.. ik zou als ik jou was niet van het MVC model voor een site gebruik maken. Op een site bevind zich maar een gebruiker tegelijkertijd toch? en heeft dus ook maar 1 view. Want de 2e gebruiker genereerd een nieuwe site, dus geen nieuwe view of iets dergelijks. Wat is dan het nu van het MVC model?
Ik zie het iig niet. Ik ben zelf ook bezig met iets dergelijks, maar het idee van die action listener is idd erg handig. Ook gebruik ik bijna nooit in php meerder objecten van hetzelfde type. Ik heb bijv ene klasse user. Daar maak ik maar 1 object van aan, en doe daar login, logout, info opvragen etc.

[ Voor 10% gewijzigd door Guldan op 11-03-2005 17:27 ]

You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De discussie waarom ik dit gebruik, is denk ik niet van belang bij dit topic. Ik wil gewoon nette code maken presentatie van de data scheiden.

Acties:
  • 0 Henk 'm!

  • Guldan
  • Registratie: Juli 2002
  • Laatst online: 11:30

Guldan

Thee-Nerd

ok, dat mag dacht het e.v.t nuttig was:

maar over dit:
is het niet zo dat bij elk verschillend request alles opnieuw wordst opgebouwdt, zodat je objecten niet kan laten blijven bestaan en kan laten hergebruiken?
heb je idd gelijk.Dat kan niet. Dit komt omdat php code stopt als de site is geladen. Je zou dus ook nooit een while(true) kunnen uitvoeren daardoor. Ik ben zelf ook ongeveer bezig volgens een paar van jou ideen maar het lijkt mij niet dat alle requests naar 1 pagina sturen traag word, dit omdat je niet in 1 keer alle requests gebruikt maar alleen bepaalde.

You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?


Acties:
  • 0 Henk 'm!

  • Gwaihir
  • Registratie: December 2002
  • Niet online
Je hebt inderdaad geen programma wat op de achtergrond doorloopt van request naar request. Je kunt wel data opslaan in het ene request (in geheugen, op disk, in een database, of in de pagina die je terruggaf) en ten tijde van het volgende request weer te voorschijn halen. Door middel van een sessie herken je achtereenvolgende requests als afkomstig van één gebuiker.

Werken met veel globals is vooral niet netjes en foutgevoeliger. Heeft weinig met performance van doen. Ook een global is na volledige verwerking van het request weer "vergeten".

Alle requests via een pagina geleiden kan prima. Let er dan wel op dat je de gebruiker maar één beginpunt aanreikt: mensen gaan liever naar site/invoer en site/wijzig en site/raadpleeg dan naar site/index.php?req=invoer, site/index.php?req=wijzig, etc. Overigens kun je dat eerste ook daar Apache's rewrite engine intern weer in het laatste laten omzetten.

[ Voor 47% gewijzigd door Gwaihir op 11-03-2005 19:56 ]


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 01:32

alienfruit

the alien you never expected

Misschien zou je wat kunnen doen met shared memory ofzo: )
http://nl2.php.net/manual/en/ref.sem.php

[ Voor 27% gewijzigd door alienfruit op 11-03-2005 20:30 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
tnx ziet er interesant uit, zal dat even onderzoeken

Acties:
  • 0 Henk 'm!

  • tech-no-logical
  • Registratie: December 2000
  • Laatst online: 17-09 22:52
als het niet nodig is dat verschillende gebruikers hetzelfde object delen is het waarschijnlijk een stuk makkelijker om de gemaakte objecten bij elk request uit de sessie te halen, het werk te doen en ze terug te stoppen in de sessie. objecten worden zo hergebruikt per gebruiker/sessie. zo'n mechanisme gerbuik ik zelf ook vaak.

zie http://nl2.php.net/session
Pagina: 1