Website indeling (mappenstructuur)

Gestart doorJorzwa7 reacties343 weergaven

8 berichten · pagina 1 van 1

Jorzwa

Lid · Topicstarter

Berichten
1.644
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik vroeg me zo af wat is de juiste indeling van een website als het gaat om files? Bij een framework word dit voor je bepaald maar voor een schoolopdracht mag ik geen framework gebruiken.

Waar ik aan dacht maar ben er nog niet over uit iemand suggesties?:
*Template
-----*images
-------hier alle images
------*css
--------main.css
--------admin.css
------header.php
------footer.php
*pages
------hier alle pages.php
*classes
------hier alle classes
*uploads
------*images
index.php
.htaccess
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Een indeling die ik graag gebruik is in de vorm van dit:

/app
    /storage
    /Models
    /Views
    /Controllers
/public
    /assets
        /javasript
        /images    
        /css
index.php
.htaccess


Alles in /public is publiekelijk en los beschikbaar. Daar kan iedereen dus gewoon bij. Je zal hier dus geen losse PHP bestanden terug vinden. Alles loopt via de index.php en deze laad alles uit je /app directory in.

LET OP: de public map is in dit geval je public_html map. Je /app map valt buiten de public root.

Alles binnen de /app map is maar net hoe je je applicatie wil opbouwen. in mijn voorbeeld hierboven heb ik bijvoorbeeld een basis MVC mappenstructuur gebruikt, maar hier kan je in principe je domein-logica en classes in kwijt. In views komen over het algemeen je templates en views terecht.

De map storage is voor interne storage zoals uploads. Omdat we de uploads niet publiekelijk beschikbaar willen maken (= veiligheidsrisico als men een shell o.i.d. kan uploaden) slaan we bestanden op in de /app folder. Deze kunnen we vanuit een controller gemakkelijk inladen en als download aanbieden aan de gebruiker.

Als je nog vragen hebt hoor ik het graag smile
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Uploads zou ik sowieso buiten de webroot plaatsen. Niet alleen vanwege veiligheid tegen bijv. een shell, maar ook bijv. bij gerenderde facturen die gedownload kunnen worden.
0
Berichten
10.409
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rik schreef:
Een indeling die ik graag gebruik is in de vorm van dit:

/app
    /storage
    /Models
    /Views
    /Controllers
/public
    /assets
        /javasript
        /images    
        /css
index.php
.htaccess
Alles in /public is publiekelijk en los beschikbaar. Daar kan iedereen dus gewoon bij. Je zal hier dus geen losse PHP bestanden terug vinden. Alles loopt via de index.php en deze laad alles uit je /app directory in.

LET OP: de public map is in dit geval je public_html map. Je /app map valt buiten de public root.

Alles binnen de /app map is maar net hoe je je applicatie wil opbouwen. in mijn voorbeeld hierboven heb ik bijvoorbeeld een basis MVC mappenstructuur gebruikt, maar hier kan je in principe je domein-logica en classes in kwijt. In views komen over het algemeen je templates en views terecht.

De map storage is voor interne storage zoals uploads. Omdat we de uploads niet publiekelijk beschikbaar willen maken (= veiligheidsrisico als men een shell o.i.d. kan uploaden) slaan we bestanden op in de /app folder. Deze kunnen we vanuit een controller gemakkelijk inladen en als download aanbieden aan de gebruiker.

Als je nog vragen hebt hoor ik het graag smile
Ik zou dan nog - net zoals Laravel - de Views map in een resources map plaatsen.

/app
    /storage
    /Models
    /Controllers
/resources
    /assets
    /views
/public
    /assets
        /javasript
        /images    
        /css
index.php
.htaccess


Waarin je dus binnen resources/assets jouw SASS/LESS bestanden in kwijt kunt die je dan vervolgens compileerd naar jouw public map. (GULP oid)

Zo hou je de frontend assets ook een beetje schoon.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Ja klopt. Maar ik wilde niet letterlijk de laravel setup gaan kopieren. Zo heb ik vaak mijn models ook niet in een Models map, maar leven die gewoon in de App namespace.
0
Berichten
10.409
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rik schreef:
Ja klopt. Maar ik wilde niet letterlijk de laravel setup gaan kopieren. Zo heb ik vaak mijn models ook niet in een Models map, maar leven die gewoon in de App namespace.
Heeft dat een functionele reden? Ben altijd benieuwd waarom mensen dat doen.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Kingunit schreef:
Eerdere citaten tonen
Rik schreef:
Ja klopt. Maar ik wilde niet letterlijk de laravel setup gaan kopieren. Zo heb ik vaak mijn models ook niet in een Models map, maar leven die gewoon in de App namespace.
Heeft dat een functionele reden? Ben altijd benieuwd waarom mensen dat doen.
Heeft wat een functionele reden?
0
Berichten
10.409
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rik schreef:
Eerdere citaten tonen
Kingunit schreef:
Eerdere citaten tonen
Rik schreef:
Ja klopt. Maar ik wilde niet letterlijk de laravel setup gaan kopieren. Zo heb ik vaak mijn models ook niet in een Models map, maar leven die gewoon in de App namespace.
Heeft dat een functionele reden? Ben altijd benieuwd waarom mensen dat doen.
Heeft wat een functionele reden?
Ben altijd benieuwd waarom mensen models rechtstreeks in de app folder plaatsen.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren