Welke folder structuur / layout gebruiken jullie en waarom?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
Beetje een algemene topicnaam. Ik merk dat ik de laatste jaren zo nu en dan switch van folderstructuur;

De ene keer gebruik ik een dergelijke structuur
- /img/home
- /css/home
- /js/home
- /php/home
- /inc/home

dus voor iedere 'pagina' als er voor dat onderdeel een include is zet ik dat in de resp. folder. Dit is voornamelijk gebaseerd op Smarty, want Smarty wil dat je tpl en PHP kunt scheiden. Als je echter 'onderdelen' van websites wilt kopieeren kun je beter een dergelijke structuur aanhouden

- /.../home/css
- /.../home/img
- /.../home/js
- /.../home/php
- /.../home/inc

Dus alles van 1 pagina bij elkaar gegroepeerd.

Nu zijn er meer wegen die naar Rome leiden, en zo heb je bijv. ook het Zend Framework wat een folderstructuur adviseert, maar wat gebruiken jullie eigenlijk, en vooral, waarom dat?

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Per pagina indelen is sowieso nogal raar, aangezien je heel veel elementen van verschillende pagina's kunt hergebruiken.

Je kunt assets beter op type organiseren (zoals visuals, backgrounds, etc)

En als je zoveel CSS/JS hebt dat je dat in mappen wilt gaan onderverdelen denk ik dat je eens moet kijken of je dat aantal niet kan verminderen. Een bestand per pagina is ook daar redelijk onzinnig gezien het mogelijke hergebruik.

[ Voor 38% gewijzigd door Bosmonster op 13-04-2010 09:53 ]


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
Hmm, goed punt.. Zelf ben ik aan het denken aan onderstaande opzet;
code:
1
2
3
4
5
6
7
8
9
10
11
website/_inc         : basiscode welke door meerdere website gebruikt kan worden
- website/_inc/js
- website/_inc/css
- website/_inc/img
- website/_inc/php
website/cache        : minified JS/CSS/thumbnails e.d.
website/php          : php code
website/theme        : theme afhankelijke code zoals img/js/css etc.?
website/tpl          : templates voor specifieke pagina code
website/upload       : upload map voor CMS
website/webstat      : webalizer


edit: Ik minify al mijn CSS & Javascript (on the fly, indien gewijzigd), dus er is per pagina (in de HTML naar de client gestuurd) maar 1 CSS en 1 JS file. Zodoende heb ik volledige vrijheid in het bewerken, als ik save en upload zal er automatisch een nieuwe minified versie worden gecreeerd.

[ Voor 21% gewijzigd door xces op 13-04-2010 09:58 ]


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Haal sowieso je serverside code uit je webroot. Nu kan je allerlei zaken opvragen die je helemaal niet wilt serveren. Onze applicaties zien er altijd zo uit:
/
  application/
    configs/
    controllers/
    models/
    views/
    application.php
  library/
    My/
    Custom/
  public/
    index.php
    styles/
    scripts/
    images/

Je kan alleen op de index.php uitkomen welke direct doorverwijst naar application.php. Binnen de applicatie staat alle website-specifieke code. Reusable code staat in een library. De public bevat alleen de bestanden welke echt via de webserver benard moeten worden. Als de server een keertje plat ligt heb je niet al je broncode op straat liggen.

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 09:07

MueR

Admin Tweakers Discord

is niet lief

Wij houden ongeveer deze structuur aan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/assets            Content images, attachments enzo hier
/cache              Duidelijk, dicht via htaccess
/static            Layout spul:
  /images            Background images, logos, icons etc
  /scripts          Javascripts
  /styles            Stylesheets
/system            Codebase, dicht via htaccess
  /admin              Zie map "site" (incl submappen)
  /classes          Algemene classes binnen ons framework, wat submappen voor de uitgebreide libraries als db classes
  /functions          Algemene functies binnen ons framework
  /site             Site
    /classes          Site specifieke classes
    /functions      Site specifieke functies
    /handlers        Controllers
    /postbacks      Controllers voor POST requests
    /templates      Templates

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

/
+---non-www
|   +---engine
|   +---frameworks
|   +---libs
|   \---templates
\---www
    +---css
    +---images
    \---js

non-www bevat dus de files die niet via HTTP opvraagbaar dienen te zijn, deze worden indien mogelijk buiten de webroot geplaatst en anders via een .htaccess afgeschermd. In www staan alle javascript- & css-bestanden en afbeeldingen, deze zijn dus wel publiekelijk toegankelijk.

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • Noxious
  • Registratie: Juli 2002
  • Laatst online: 10-09 14:45
Mijn indeling is vrijwel altijd zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
/var/www/vhosts/domein.nl/web/_images
                             "_includes
                             "_css
                             "_js
                             "_swf

                         "scripts/cron

                         "mail/user1
                              "user2

                         "logs/access.log
                              "error.log

Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
mithras schreef op dinsdag 13 april 2010 @ 10:02:
Haal sowieso je serverside code uit je webroot.
Hmm, als het gaat om Ruby code kan ik dat nog begrijpen, maar als je een website structuur hebt van bijv.
.../www/www.website.nl/ = public
.../www/sub.website.nl/ = public

Wat zou je in het geval van een PHP website buiten de web-root dan willen hebben, buiten bijv. config files met wachtwoorden?

Acties:
  • 0 Henk 'm!

  • MoietyMe
  • Registratie: Juli 2003
  • Laatst online: 26-05 08:10

MoietyMe

zij/haar

Wij hebben alles zo staan:

/root
- css (alle css-bestanden)
- images (alle plaatjes)
- scripts (alle js-bestanden)
- templates (een include voor de css/js dingen als de footer etc.)
- mme (CMS)

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
xces schreef op dinsdag 13 april 2010 @ 10:54:
[...]

Hmm, als het gaat om Ruby code kan ik dat nog begrijpen, maar als je een website structuur hebt van bijv.
.../www/www.website.nl/ = public
.../www/sub.website.nl/ = public

Wat zou je in het geval van een PHP website buiten de web-root dan willen hebben, buiten bijv. config files met wachtwoorden?
In shared hosting omgevingen (en op een dedicated server richten we het op eenzelfde manier in) heb je in de "user" folder deze structuur: domains/mijn.domein.nl/public_html/
Dus zit er een laag tussen de folder van de domein en de webroot. Daar zetten we dan de application + library in :)

Daarnaast is de applicatie geschikt om als multidomain-cms te dienen. Dan heb je dus in je root (naast de domain folder) de library en application staan. Dan staat op domains/mijn.domein.nl/ nog wat extra's qua website specifieke configuraties. En dan in de webroot de index.php. Zo heb je meerdere domeinen (en dus websites) die beheerd worden vanuit een applicatie :)

Acties:
  • 0 Henk 'm!

  • Mr. Dean
  • Registratie: Maart 2009
  • Laatst online: 16-12-2020

Mr. Dean

Signature

Zelf gebruik ik de volgende structuur:

code:
1
2
3
4
5
6
/root
 - /css/ -alle css files
 - /js/ -alle javascripts
 - /images/ -alle plaatjes
 - index.html
 - pagina.html


Als ik php gebruik wil ik 'js' nog wel inwisselen voor 'scripts', maar dat komt zelden voor.

Ondertitel


Acties:
  • 0 Henk 'm!

  • Noxious
  • Registratie: Juli 2002
  • Laatst online: 10-09 14:45
Ik hoop niet dat je echt alles in /root zet Mr. Dean :P :+

Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
@Mithras; nu ga ik zelf redelijk off-topic, maar 'zelf' heb ik het zo ingericht;
/hosting/home/<user>/
/hosting/home/<user>/logs/
/hosting/home/<user>/cgi-bin/
/hosting/home/<user>/certs/
/hosting/home/<user>/www/
/hosting/home/<user>/www/sub.domein.nl/
/hosting/home/<user>/www/www.domein.nl/

Apache en het filesystem zijn zo ingericht dat iedere website ook onder rechten van <user> draait, dus wat dat betreft is er geen 'apache' user die overal bij kan.

Misschien zou het beter zijn om te gaan naar een volgende structuur:
Buiten het feit dat ik dan mijn logs, certificates en cronjobs per (sub)domein kan groeperen zie ik niet veel voordelen, of zie ik wat fundamenteels over het hoofd? Mijn mail draait overigens op een externe server:

/hosting/home/<user>/
/hosting/home/<user>/sub.domein.nl/certs/
/hosting/home/<user>/sub.domein.nl/cgi-bin/
/hosting/home/<user>/sub.domein.nl/logs/
/hosting/home/<user>/sub.domein.nl/public/
/hosting/home/<user>/www.domein.nl/certs/
/hosting/home/<user>/www.domein.nl/cgi-bin/
/hosting/home/<user>/www.domein.nl/logs/
/hosting/home/<user>/www.domein.nl/public/

Structuur php website op een shared hosting omgeving:
Door jullie beredeneringen ben ik tot de volgende structuur gekomen voor een php website welke op een shared hosting omgeving draait, zonder dat ik verder de apache structuur ga omgooien. Wat vinden we hiervan?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/_/                 : basis 'layout map' welke door meerdere sites gebruikt kan worden
    /js/
    /css/
    /img/
    /php/
    /tpl/ (??)
/cache/             : minified JS/CSS/thumbnails e.d.
    /gfx/
        /header/
        /menu/
        /thumb/
    /minify/
    /mailing/
    /tmp/
/layout/            : layout afhankelijke bestanden zoals img/js/css etc.?
    /js/            : Javascript files
    /css            : Stylesheets
    /img/           : Afbeeldingen
    /php/           : PHP code, af te schermen dmv htaccess
    /tpl/           : Templates
/upload/            : upload map voor CMS
/webstat/           : webalizer
index.php           : controller file welke de benodigde bestanden include

[ Voor 50% gewijzigd door xces op 13-04-2010 12:40 ]


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 20:50
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.htaccess
index.php
/application
    bootstrap.php
    /config
        /application.ini
        /config.ini
    /controllers
    /layouts
    /models
    /views
/library
    /Zend
    /ZendX
/public
    /css
        style.css
        ie[x].css
    /images
    /js
        /jquery
             /plugins

Zo ongeveer.

Alles naar index.php wat geen bestaand bestand is, alles dichttimmeren behalfe public en index.php evt een /upload en /cache er bij.

[ Voor 210% gewijzigd door ZpAz op 13-04-2010 12:42 ]

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
sterker nog, ik kan alles dichttimmeren behalve de cache map, public/images en index.php
Ik minify namelijk mijn CSS en Javascript, dus die worden vanuit cache/minify geserved.

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 09:07

MueR

Admin Tweakers Discord

is niet lief

En wat schiet je daar mee op? Zolang directory indexes uit staan zou ik niet alles gaan dichttimmeren. Directory met code, uiteraard. De rest: live and let live hoor.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
goed punt, scheelt weer.

Acties:
  • 0 Henk 'm!

Verwijderd

Voor men hobby websites gebruik ik meestal volgende structuur

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
/
- /_css/            : css bestanden
- /_js/         : javascript bestanden
- /_images/     : afbeeldingen
    - /_layout/     : afbeeldingen ~ onderdelen van de layout (background images, borders, ...)
    - /_content/    : afbeeldingen ~ images die te maken hebben met content
    - /_icons/      : afbeeldingen ~ icoontjes zoals arrows, bullets, ...
    - /_silk/       : afbeeldingen ~ silk icons (http://www.famfamfam.com/lab/icons/silk/)
- /_cache/          : cache files
- /_includes/       : php ~ includes
- /_lib/            : php ~ base code & functies, ...
- /_templates/      : php ~ html templates (header, footer, ...)
- /_modules/        : php ~ de website/pagina's zelf maar dan zonder mod_rewrite voor de SEO

Uiteraard zitten hier de nodige .htaccess bestanden bij om bepaalde directory's & bestanden te beschermen tegen ongewenste bezoekers & bots :)

De underscore voor elke folder is een bewuste keuze om zelf wat meer overzicht te houden in men code en soms ook wel handig om snel even een find / replace te doen :)

Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
Kim, ik snap je underscore niet, want als je die overal gebruikt is het nut een beetje ... weg.. :p

Acties:
  • 0 Henk 'm!

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Ik kom (als hobbyist) op een soortgelijke structuur uit als de andere hobbyisten alleen gebruik ik geen underscore maar een getal wat makkelijker sorteert :^p

code:
1
2
3
4
/01static/
/02dynamic/
/03pix/
/04..../

Acties:
  • 0 Henk 'm!

Verwijderd

moozzuzz schreef op dinsdag 13 april 2010 @ 16:42:
Ik kom (als hobbyist) op een soortgelijke structuur uit als de andere hobbyisten alleen gebruik ik geen underscore maar een getal wat makkelijker sorteert :^p

code:
1
2
3
4
/01static/
/02dynamic/
/03pix/
/04..../
Wow, back to BASIC

Acties:
  • 0 Henk 'm!

Verwijderd

xces schreef op dinsdag 13 april 2010 @ 15:18:
Kim, ik snap je underscore niet, want als je die overal gebruikt is het nut een beetje ... weg.. :p
ergens wel ja ... het is maar hoe je het bekijkt ...

Nu ik gebruik in hoofdzaak meuk: Notepad++ 5.6.8 & web developer toolbar voor het ontwikkelen / debuggen en als ik dan op zoek ben naar iets vind ik de underscore net handig, ook omdat je in je code soms tags of syntax hebt met bijna identieke woorden background-image, include(), ..., voor mij is het dan net een hulp & verduidelijking zodat ik weet waar ik mee bezig ben. Ik ben dan ook iemand die eerder visueel ingesteld is, als ik dus door men code snel wil scrollen ... ik betrap me er dan ook soms op dat ik meer tijd in naamgeving, uitlijning, ... van men code steek dan in de functionaliteit zelf :z

Acties:
  • 0 Henk 'm!

  • joint_me
  • Registratie: September 2001
  • Laatst online: 20:37
pff, daar ga ik me niet mee bezig houden :P

We hebben gekozen voor framework Rails en die komt met een folder structuur, niet moeilijk doen gewoon die aanhouden.

Hello fellow humans


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
moozzuzz schreef op dinsdag 13 april 2010 @ 16:42:
Ik kom (als hobbyist) op een soortgelijke structuur uit als de andere hobbyisten alleen gebruik ik geen underscore maar een getal wat makkelijker sorteert :^p

code:
1
2
3
4
/01static/
/02dynamic/
/03pix/
/04..../
En wat heeft dat voor praktisch nut dan?

edit: jammer dat hier dan weer niet op geantwoord wordt :{

[ Voor 7% gewijzigd door Cartman! op 18-04-2010 15:48 ]

Pagina: 1