Ik heb de afgelopen tijd veel gewerkt aan (voor mijn doen) erg grote webapplicaties met veel pagina's met grote userinterfaces.
Nu valt het niet mee om deze code een beetje netjes te houden, het meeste echte werk wordt gedaan in functies en classes die ergens anders staan en dat is allemaal prima leesbaar en geordend maar ik krijg nu dus gigantische stukken php die eigenlijk niet meer doen dan gevulde html forms printen met wat if's ed er tussen. Erg lelijk dus en ook niet lekker onderhoudbaar.
Ik heb zitten kijken hoe dit beter kan en het beste wat ik tot nu toe heb kunnen bedenken is iets in deze richting: (versimpeld voorbeeld uit mijn eigen cms wat momenteel in aanbouw is, graag geen discussie/commentaar over het cms zelf)
Wat ik hier dus doe is eerst alle html structuur in een variabele stoppen en dan de knopppen en veldwaardes er in replacen. Dit heeft als vordeel dat het overzichtelijker is en later makkelijker aan te passen als er functies bij moetten komen of het design verandert wordt.
Nu is mijn vraag hoe lossen jullie dit op?
Heb wat rond zitten browsen maar heb over dit onderwerp waar m.i. veel over te zeggen valt nog geen discussies gevonden.
Nu valt het niet mee om deze code een beetje netjes te houden, het meeste echte werk wordt gedaan in functies en classes die ergens anders staan en dat is allemaal prima leesbaar en geordend maar ik krijg nu dus gigantische stukken php die eigenlijk niet meer doen dan gevulde html forms printen met wat if's ed er tussen. Erg lelijk dus en ook niet lekker onderhoudbaar.
Ik heb zitten kijken hoe dit beter kan en het beste wat ik tot nu toe heb kunnen bedenken is iets in deze richting: (versimpeld voorbeeld uit mijn eigen cms wat momenteel in aanbouw is, graag geen discussie/commentaar over het cms zelf)
PHP:
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
28
29
30
31
32
| $menu = ' <table class="options"> <th colspan="4">Pagina Opties</th> <tr> <td>Pagina Naam:</td> <td><input type="text" name="name" value="?page_name?"></td> <td>Pagina volgorde:</td> <td>?up_button? ?down_button?</td> </tr><tr> <td>Sub-Pagina van:</td> <td>?parent_name? ?change_parent_button?</td> <td>Nieuwe Subpagina:</td> <td>?new_subpage_button?</td> </tr><tr> <td>?delete_page_button?</td> <td colspan="3" align="right">?save_page_button?</td> </tr> </table> '; $replace['?page_name?'] = $_page['name']; $replace['?up_button?'] = '<input type="submit" name="up" value="Omhoog">'; $replace['?down_button?'] = '<input type="submit" name="down" value="Naar Beneden">'; $replace['?parent_name?'] = $_pages[$_page['parent']]['name']; $replace['?change_parent_button?'] = '<input type="submit" value="Verander" onclick="open_popup(\'popups/change_parent.php?page=' . $_page['id'] . '\');return false">'; $replace['?new_subpage_button?'] = '<input type="submit" value="Aanmaken" onclick="open_popup(\'popups/nieuwepagina.php?parent=' . $_page['id'] . '\');return false">'; $replace['?delete_page_button?'] = '<input type="submit" name="delete" value="Verwijder" OnClick="return confirm(\'Weet u zeker dat u deze pagina wil verwijderen?\')">'; $replace['?save_page_button?'] = '<input type="submit" name="save" value="Opslaan">'; if (!is_bovenste_pagina) $replace['?up_button?'] = ""; if (!is_onderste_pagina) $replace['?down_button?'] = ""; echo str_replace(array_keys($replace), $replace, $menu); |
Wat ik hier dus doe is eerst alle html structuur in een variabele stoppen en dan de knopppen en veldwaardes er in replacen. Dit heeft als vordeel dat het overzichtelijker is en later makkelijker aan te passen als er functies bij moetten komen of het design verandert wordt.
Nu is mijn vraag hoe lossen jullie dit op?
Heb wat rond zitten browsen maar heb over dit onderwerp waar m.i. veel over te zeggen valt nog geen discussies gevonden.
Mini-ITX GamePC: Core i5 3470 | 16GB DDR3 | GTX 970 4GB | Samsung 830 128GB | Dell u2711 (27", IPS,1440p), 2343BW