Beste tweakers. Ik heb zelf een site met PHP gemaakt, en deze ben ik nu eens grondig aan het doornemen en optimaliseren. Nu kwam ik alleen een paar "problemen" tegen, waarvan ik benieuwd ben hoe anderen dat doen. Ik zet problemen tussen aanhalingstekens, omdat het niet echt problemen zijn. Het gaat om oplossingen om de code leesbaarder en makkelijker te maken om te onderhouden.
Ik ben zelf geen professioneel programmeur, en bijna alles wat ik doe heb ik zelf bedacht verzonnen. Misschien dat ik daarom misschien dingen in jullie ogen heel vreemd of verkeerd oplos, maar daar is dit topic ook voor. Om te kijken hoe anderen dingen oplossen en hoe ik het zelf ook beter kan doen
Allereerst een kleine uitleg over de site. Het is een site een beetje zoals clanbase. Hier kunnen mensen zich aanmelden, clans vormen met zijn allen en als clan aanmelden voor een league. In een league worden dan matches gespeeld en de scores en ratings worden allemaal bijgehouden in de database.
Nu allereerst de pagina-opbouw. Ik heb alle soortgelijke functies op 1 pagina gezet. Per pagina gebruik ik hele lange if-elseif statements om te bepalen welke pagina of welke actie uitgevoerd moet worden.
De pagina is dan ook meestal ook opgebouwd met site/clan.php?action=foo. Met php bepaal ik in de if-elseif contructie dan bijvoobeeld
om te kijken of de pagina achter ?action=foo weergegeven moet worden. Zo is een pagina dus uit allemaal acties en pagina's opgebouwd. Het probleem is hierbij het onderhouden. Het is niet de meest overzichtelijke en makkelijke manier om te onderhouden, daarom vraag ik me af hoe jullie dat doen? Hoe scheiden jullie acties en pagina's op een duidelijke en overzichtelijke manier, zonder voor elke actie een nieuwe pagina te hoeven maken.
Alle pagina's en acties op een aparte pagina heb ik al aan zitten denken, maar ik zie het niet zitten om mijn users bij elke klik naar een andere pagina te sturen. Zo heb ik liever alle acties bij een clan via clan.php op te vragen enzovoorts. Dit is eigenlijk mijn punt wat ik graag zou willen verbeteren.
Als tweede vraag ik me af hoe je het beste kan controleren op een formulier submit? Ikzelf geef dus een naam aan de submit knop in een formulier:
Vervolgens kijk ik in de if-elseif statements of deze gezet is en meestal zet ik in de if dan ook meteen de controle op de belangrijkste ID van de actie waar het om gaat:
en ga dan indien deze true is, de acties uitvoeren die hierbij horen. De vraag is alleen, is dit goed, en is dit ook vrij veilig? 100% veilig kan je dit natuurlijk niet maken (Een formulier submit kan je altijd faken), of zitten hier haken en ogen aan die ik nog niet gezien of ondervonden heb?
Als derde een vraag over classes. Uiteraard heb ik classes zoals league en clan, welke functies bevatten als $clan->add_member(), $clan->update_data() enzvoorts, en welke de array $clan->data[] bevatten met alle gegevens over de league/clan/enz.
Maar wat met bijvoorbeeld nieuwsberichten? Is het ook makkelijk daar een class voor te schrijven, aangezien er niet echt functies voor te schrijven zijn. Je hebt alleen insert, delete en update en verder niets, wat is dan de toegevoegde waarde van een class? Is het dan niet makkelijker om daar gewone functies voor te maken, of moet ik deze acties beschrijven in mijn if-elseif statements?
En als laatste een vraag over mijn includes. Ik heb 1 include waar practisch alles in staat: pagestart.php. Daarin include ik uiteraard eerst alle classes die elk in een eigen pagina staan. Dan include mijn functions.php waar alle functies in staan en daar staat ook alle code om te checken of een user ingelogd is of niet, of de user geband is en dat soort meuk. Boven elke pagina (bijvoorbeeld clan.php) begin ik dan met een
om elke pagina te beginnen. Vervolgens komen de if-elseif statements, en daar waar output nodig is begin ik met een
om de bovenkant van mijn pagina op te bouwen en eindig ik met
om de onderkant erachteraan op te bouwen (Het pad naar de header en footer staat vastgelegd in de constants HEADER en FOOTER).
Dit is dus ongeveer de opzet van mijn site. Aangezien ik de code flink aan het doornemen en opschonen ben, vraag ik me toch af hoe ik die opzet beter en makkelijker kan maken. Alle suggesties tips en ideeën zijn zeer welkom
Ik ben zelf geen professioneel programmeur, en bijna alles wat ik doe heb ik zelf bedacht verzonnen. Misschien dat ik daarom misschien dingen in jullie ogen heel vreemd of verkeerd oplos, maar daar is dit topic ook voor. Om te kijken hoe anderen dingen oplossen en hoe ik het zelf ook beter kan doen
Allereerst een kleine uitleg over de site. Het is een site een beetje zoals clanbase. Hier kunnen mensen zich aanmelden, clans vormen met zijn allen en als clan aanmelden voor een league. In een league worden dan matches gespeeld en de scores en ratings worden allemaal bijgehouden in de database.
Nu allereerst de pagina-opbouw. Ik heb alle soortgelijke functies op 1 pagina gezet. Per pagina gebruik ik hele lange if-elseif statements om te bepalen welke pagina of welke actie uitgevoerd moet worden.
De pagina is dan ook meestal ook opgebouwd met site/clan.php?action=foo. Met php bepaal ik in de if-elseif contructie dan bijvoobeeld
PHP:
1
| if((isset($_GET['action']) && $_GET['action'] == 'foo')) |
om te kijken of de pagina achter ?action=foo weergegeven moet worden. Zo is een pagina dus uit allemaal acties en pagina's opgebouwd. Het probleem is hierbij het onderhouden. Het is niet de meest overzichtelijke en makkelijke manier om te onderhouden, daarom vraag ik me af hoe jullie dat doen? Hoe scheiden jullie acties en pagina's op een duidelijke en overzichtelijke manier, zonder voor elke actie een nieuwe pagina te hoeven maken.
Alle pagina's en acties op een aparte pagina heb ik al aan zitten denken, maar ik zie het niet zitten om mijn users bij elke klik naar een andere pagina te sturen. Zo heb ik liever alle acties bij een clan via clan.php op te vragen enzovoorts. Dit is eigenlijk mijn punt wat ik graag zou willen verbeteren.
Als tweede vraag ik me af hoe je het beste kan controleren op een formulier submit? Ikzelf geef dus een naam aan de submit knop in een formulier:
code:
1
2
3
4
| <form> <input type="submit" name="submit_claninfo" value="Verwerk"> <input type="hidden" name="clan_id" value="<?= $clan->clan_id ?>"> </form> |
Vervolgens kijk ik in de if-elseif statements of deze gezet is en meestal zet ik in de if dan ook meteen de controle op de belangrijkste ID van de actie waar het om gaat:
PHP:
1
| elseif(isset($_POST['submit_claninfo']) && isset($_POST['clan_id'])) |
en ga dan indien deze true is, de acties uitvoeren die hierbij horen. De vraag is alleen, is dit goed, en is dit ook vrij veilig? 100% veilig kan je dit natuurlijk niet maken (Een formulier submit kan je altijd faken), of zitten hier haken en ogen aan die ik nog niet gezien of ondervonden heb?
Als derde een vraag over classes. Uiteraard heb ik classes zoals league en clan, welke functies bevatten als $clan->add_member(), $clan->update_data() enzvoorts, en welke de array $clan->data[] bevatten met alle gegevens over de league/clan/enz.
Maar wat met bijvoorbeeld nieuwsberichten? Is het ook makkelijk daar een class voor te schrijven, aangezien er niet echt functies voor te schrijven zijn. Je hebt alleen insert, delete en update en verder niets, wat is dan de toegevoegde waarde van een class? Is het dan niet makkelijker om daar gewone functies voor te maken, of moet ik deze acties beschrijven in mijn if-elseif statements?
En als laatste een vraag over mijn includes. Ik heb 1 include waar practisch alles in staat: pagestart.php. Daarin include ik uiteraard eerst alle classes die elk in een eigen pagina staan. Dan include mijn functions.php waar alle functies in staan en daar staat ook alle code om te checken of een user ingelogd is of niet, of de user geband is en dat soort meuk. Boven elke pagina (bijvoorbeeld clan.php) begin ik dan met een
PHP:
1
| require('pagestart.php'); |
om elke pagina te beginnen. Vervolgens komen de if-elseif statements, en daar waar output nodig is begin ik met een
PHP:
1
| include(HEADER); |
om de bovenkant van mijn pagina op te bouwen en eindig ik met
PHP:
1
| include(FOOTER); |
om de onderkant erachteraan op te bouwen (Het pad naar de header en footer staat vastgelegd in de constants HEADER en FOOTER).
Dit is dus ongeveer de opzet van mijn site. Aangezien ik de code flink aan het doornemen en opschonen ben, vraag ik me toch af hoe ik die opzet beter en makkelijker kan maken. Alle suggesties tips en ideeën zijn zeer welkom
What do you mean I have no life? I am a gamer, I got millions!