Dat kan net zo userfriendly zijn als via een database, het ligt maar net aan de vereisten.quote:Op vrijdag 27 juli 2007 16:08 schreef Geqxon het volgende:
[..]
Mwa, userfriendly wil ik het niet noemen,
Wat?quote:om over de snelheid maar te zwijgen.
1 config class in 5 regelsquote:Op vrijdag 27 juli 2007 16:59 schreef Geqxon het volgende:
[..]
Een config class om de configuratie op te vragen? Voor iets dat in vijf regeltjes code kan?
1 2 3 4 5 6 7 | class config_class { function __construct() { self::_settings = unserialize(file_get_contents('config file')); } function get_settings($index) { return self::_settings[$key]; } } ?> |
Elke keer hardeschijfactiviteit versus elke keer databaseactiviteit? Ik gok dat een database sneller werkt. Gok ik.quote:Op vrijdag 27 juli 2007 17:09 schreef JeRa het volgende:
Wat?Ga jij nu beweren dat een include trager is dan alle opties via een functie uit de database te trekken?
I/O actie:quote:Op vrijdag 27 juli 2007 17:13 schreef Geqxon het volgende:
[..]
Elke keer hardeschijfactiviteit versus elke keer databaseactiviteit? Ik gok dat een database sneller werkt. Gok ik.
Net zoals bij een database heb je maar één keer schijfoverhead doordat daarna de block cache de read kan opvangen. Verder heb je deze additionele overhead bij de database:quote:Op vrijdag 27 juli 2007 17:13 schreef Geqxon het volgende:
[..]
Elke keer hardeschijfactiviteit versus elke keer databaseactiviteit? Ik gok dat een database sneller werkt. Gok ik.
bij je I/O actie vergeet je alleen dat dit door de HD moet gebeuren, een database actie zal in het geheugen van de server gebeuren (die ,na een tijdje, ook wel weer I/O heeft maar toch)quote:Op vrijdag 27 juli 2007 17:18 schreef WyriHaximus het volgende:
[..]
I/O actie:Hit naar het bestand Bestand in 1 ruk uitlezen
SQL:Connectie openen naar de server Autenticeren Database selecteren Query opdracht geven - Hit naar de tabel bestanden - Door het bestand gaan zoeken - Results samen stellen en dusnoods sorteren Results van de database ontvagen
Weet niet zeker maar gok dat database toch trager is...
Heb het er al bij gezetquote:Op vrijdag 27 juli 2007 17:20 schreef mschol het volgende:
[..]
bij je I/O actie vergeet je alleen dat dit door de HD moet gebeuren, een database actie zal in het geheugen van de server gebeuren (die ,na een tijdje, ook wel weer I/O heeft maar toch)
Die database zal in eerste instantie toch echt iets van de harde schijf moeten halen, en na de eerste I/O-actie bij een include zit de boel in de block cachequote:Op vrijdag 27 juli 2007 17:20 schreef mschol het volgende:
[..]
bij je I/O actie vergeet je alleen dat dit door de HD moet gebeuren, een database actie zal in het geheugen van de server gebeuren (die ,na een tijdje, ook wel weer I/O heeft maar toch)
En je database settings, waar sla je die op?quote:Op vrijdag 27 juli 2007 15:51 schreef Geqxon het volgende:
[..]
Daar heb ik een settings-tabel in de database voor. Waarbij alles via getSetting($instelling) op te vragen is.
1 2 3 4 5 6 7 | $settings = Settings::getInstance(); $settings->import('config.ini'); $hostname = $settings->get('database.hostname'); $username = $settings->get('database.username'); ?> |
ok dit is misschien geen antwoord op je vraag maar mijn mening, waarom zou je een verbinding opzetten met je database voor een paar menuitems O_O, zo kan het ook?quote:Op zaterdag 28 juli 2007 05:25 schreef wonderer het volgende:
Menu uit tabel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | $menu = array("item1" => array ("subitem1" => "linkje", "subitem2" => "linkje", "subitem3" => array("subsubitem1" => "linkje", "subsubitem2" => "linkje" ) ), "item2" => "linkje", "item3" => array ("subitem1" => "linkje", "subitem2" => "enzovoort" ) ); function bouwmenutje(array $menu) { $result = ""; foreach($menu as $item => $submenu) if(is_array($submenu)) $result .= "$item" . bouwmenutje($submenu); else $result .= "<a href=$submenu>$item</a>"; return $result; } ?> |
Op het moment doe ik het in PHP, maar dat vind ik niet zo'n mooie oplossing....quote:Op vrijdag 27 juli 2007 16:23 schreef WyriHaximus het volgende:
Hmmm dit moet nog voor mod_rewrite gebeuren of tijdens PHP of nog voor mod_rewrite, want dat was me nog niet helemaal duidelijk. * WyriHaximus is niet echt wakker vandaag
![]()
Dan moet je dus voor elk sub-menu een query uitvoeren. Ik denk dat het een stuk sneller is om alle menu items in één keer te lezen (gesorteerd op level). Met php loop je door de resultaten heen en bouw je een array van array's op (van hoog naar laag). Die plak je dan recursief aan elkaar tot het uiteindelijke menu in html.quote:Op zaterdag 28 juli 2007 05:25 schreef wonderer het volgende:
?
Jup. Alhoewel ik het systeem wel ga herschrijven voor een groot deel, maar dan ook op een OO manier.quote:Op vrijdag 27 juli 2007 22:15 schreef Geqxon het volgende:
Om weer op het OO puntje uit te komen: super-muffin hierboven gebruik bijvoorbeeld een setting-classe. Maar is je complete systeem / website dan ook Object Oriented?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var $lastid = "" $scope[0] = ... # volgummer of initiele waarde for each $elem in $elems { if $elem == <item> { insert into table (pid, item) values ($scope[0], $elem->id) $lastid = $elem->id } else if $elem == <inside> { unshift $scope, $lastid # voeg nieuw element op pos 0 toe } else if $elem == </inside> { shift $scope # verwijder element op pos 0 } } |
In mijn situatie is alles OOquote:Op vrijdag 27 juli 2007 22:15 schreef Geqxon het volgende:
Om weer op het OO puntje uit te komen: super-muffin hierboven gebruik bijvoorbeeld een setting-classe. Maar is je complete systeem / website dan ook Object Oriented?
Ik zou het dan gewoon bij PHP houdenquote:Op zaterdag 28 juli 2007 10:19 schreef Xcalibur het volgende:
[..]
Op het moment doe ik het in PHP, maar dat vind ik niet zo'n mooie oplossing....
Het is de bedoeling dat het in de .htaccess, vóór de rest van de mod_rewrite gaat gebeuren
En één optie om het te doen is met RewriteMap, maar daar heb je weer een extra txt-bestandje voor nodig, en daar zit ik ook niet op te wachten
Je kunt het trouwens toch ook met mod_rewrite doen gewoon? Alleen moet je dan tot vrij diep gaan genererenquote:Op zaterdag 28 juli 2007 16:30 schreef Xcalibur het volgende:
ja, maar dat was nou net niet m'n vraag
deze pagina doet het neit echt trouwens bij jequote:Op zaterdag 28 juli 2007 16:46 schreef WyriHaximus het volgende:
[..]
Je kunt het trouwens toch ook met mod_rewrite doen gewoon? Alleen moet je dan tot vrij diep gaan genereren. (ff voorbeeldje maken)
Heb me forum verplaatstquote:Op zaterdag 28 juli 2007 16:56 schreef qu63 het volgende:
[..]
deze pagina doet het neit echt trouwens bij je
Ja, dat deed ik eerst, tot 3 niveau's.... tot ik tegen niveau 4 aanliep, etc.quote:Op zaterdag 28 juli 2007 16:46 schreef WyriHaximus het volgende:
Je kunt het trouwens toch ook met mod_rewrite doen gewoon? Alleen moet je dan tot vrij diep gaan genereren. (ff voorbeeldje maken)
Het is toch niet zo bar moeilijk om een scripte te maken wat het tot op 500 niveau's genereerd voor je?quote:Op zaterdag 28 juli 2007 17:23 schreef Xcalibur het volgende:
[..]
Ja, dat deed ik eerst, tot 3 niveau's.... tot ik tegen niveau 4 aanliep, etc.
En ik ben nou met een webshop bezig waar het aantal niveau's in principe onbeperkt is... en dat wil ik niet gaan voorbereiden
loopt nog steeds niet hoorquote:Op zaterdag 28 juli 2007 17:00 schreef WyriHaximus het volgende:
[..]
Heb me forum verplaatst. En was dat ff vergeten ja
.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |