Graag wil ik jullie mening horen over het design pattern in mijn nieuwe site.
Uiteraard verwacht ik kritieken maar dan wil ik weten hoe jullie het zouden aanpakken, of veranderen.
Zelf heb ik ook reeds bedenkingen, maar..
1 Het werkt perfect en flexibel
2 Ik heb probeerde dingen te veranderen, maar het is mislukt (bijv om de class op te splitsen)
Radicaal veranderen of opnieuw beginnen ga ik niet doen, dat versta ik niet onder verbeteringen
Maar bijvoorbeeld ik heb nog geen database connectie geimplementeerd
Dit is de volgende stap. ik heb mijn ideeen hieromtrend, maar ben evenzeer benieuwd naar jullie ideeen
(uiteraard gebruik ik hier PDO, maar dat is eerder implementatie dan design)
De site heb ik geschreven from scratch juist om mijn php-skills opfrissen.
Uiteraard ben ik meteen begonnen met OOP, en mijn doel was een MVC-pattern.
Ik heb nooit lessen gehad en totaal geen ervaring met bestaande MVC-framework.
Wel heb ik er al heel veel theorie over gelezen.
ik wil de broncode wel delen als er vraag is.
Maar nu zal ik het "design pattern" zo schematisch mogelijk weergeven
ik weet welliswaar niet hoe ik die het beste doe, ik probeer met een lijstje+uitleg
Folder structure:
om alvast een idee te hebben, begin ik met de mappenstructuur
Ik gebruik de echte maar deze zijn volledig arbitrair gekozen.
De index maakt een nieuw object van loader.
Via dit object gebeurt alle interactie
Eerst worden standaard pagina's ingesteld
Vervolgens zal $_GETworden ingelezen door de loader om te weten welke controllers er nodig zijn.
Vervolgens zal van iedere pagina in volgorde de controller worden aangeroepen.
Een tekort koming is dat een controller zelf geen andere controllors meer kan toevoegen aan de loader.
Wel kan de controller een andere view initieren, dan de standaard html.php
Als laatste worden alle views opgeroepen in volgorde.
Views zullen zelf data moeten ophalen uit de database.
Het lijkt inflexible, maar ik geraakt er behoorlijk goed mee uit de voeten
Maar ik ben benieuwd naar jullie mening.
Uiteraard verwacht ik kritieken maar dan wil ik weten hoe jullie het zouden aanpakken, of veranderen.
Zelf heb ik ook reeds bedenkingen, maar..
1 Het werkt perfect en flexibel
2 Ik heb probeerde dingen te veranderen, maar het is mislukt (bijv om de class op te splitsen)
Radicaal veranderen of opnieuw beginnen ga ik niet doen, dat versta ik niet onder verbeteringen
Maar bijvoorbeeld ik heb nog geen database connectie geimplementeerd
Dit is de volgende stap. ik heb mijn ideeen hieromtrend, maar ben evenzeer benieuwd naar jullie ideeen
(uiteraard gebruik ik hier PDO, maar dat is eerder implementatie dan design)
De site heb ik geschreven from scratch juist om mijn php-skills opfrissen.
Uiteraard ben ik meteen begonnen met OOP, en mijn doel was een MVC-pattern.
Ik heb nooit lessen gehad en totaal geen ervaring met bestaande MVC-framework.
Wel heb ik er al heel veel theorie over gelezen.
ik wil de broncode wel delen als er vraag is.
Maar nu zal ik het "design pattern" zo schematisch mogelijk weergeven
ik weet welliswaar niet hoe ik die het beste doe, ik probeer met een lijstje+uitleg
Folder structure:
om alvast een idee te hebben, begin ik met de mappenstructuur
Ik gebruik de echte maar deze zijn volledig arbitrair gekozen.
- index.php = loader configuratie
- core/
- loader.php = class loader
- (not yet) db.php = class db(database acces code )
- pages/
- base=template
- meta.php = controller
- html.php = view
- (not yet) table.php = model
- css.php
- session
- meta.php = controller
- *home*
- meta.php = controller
- html.php = view
- home_alternatief.php = view alternatief
- (not yet) table.php = model
- css.php = (optional css)
- base=template
- loader = new loader()
- loader->set_root('pages')
- loader->set_page('session','session')
- loader->set_page('template','base')
- loader->set_page('main','home')
- loader->load_controllers()
- pages/session/meta.php
- pages/base/meta.php
- pages/main/meta.php
- process input(GET&POST)
- (not yet) open dataBase conection
- (not yet) load table.php, insert, update, delete
- loader->load_html('template')
- pages\base\html.php
- include(menu)
- $this->load_html(main) = pages/home/html.php
- Select from table
- output html
- include(footer)
- pages\base\html.php
De index maakt een nieuw object van loader.
Via dit object gebeurt alle interactie
Eerst worden standaard pagina's ingesteld
Vervolgens zal $_GETworden ingelezen door de loader om te weten welke controllers er nodig zijn.
Vervolgens zal van iedere pagina in volgorde de controller worden aangeroepen.
Een tekort koming is dat een controller zelf geen andere controllors meer kan toevoegen aan de loader.
Wel kan de controller een andere view initieren, dan de standaard html.php
Als laatste worden alle views opgeroepen in volgorde.
Views zullen zelf data moeten ophalen uit de database.
Het lijkt inflexible, maar ik geraakt er behoorlijk goed mee uit de voeten
Maar ik ben benieuwd naar jullie mening.