views:

921

answers:

3

I am writing an web application powered by PHP, Smarty, JavaScript, CSS, MySQL.

There will be some classes, which will be used through out the application. There will be some scripts which will use those classes.

Any good article, tutorial, architecture on how to organize files for a web site?

P.S. It should contain how to organize all the files (PHP, JavaScript, CSS, template files.)

+1  A: 

Here are two good articles on PHP projects using Smarty and how to setup the file structure for them:

http://codepoets.co.uk/php5_application_directory_structure_ruby_on_rails

http://www.edit-x.com/editx-support-articles.php?s=&c=21&d=48&e=&f=&g=&a=11122&w=2

Brian Fisher
A: 

A very basic folder layout:

root
 |
 |- htdocs       # apache documentroot (i.e. index.php etc.) here
 |   |
 |   |- styles   # css here
 |   |
 |   |- images
 |
 |- application  # classes etc. here
 |
 |- vendor
 |   |
 |   |- smarty   # smarty library files
Karsten
+2  A: 

Just remember PHP libraries and template files should not be directly accessible over the web server.

You can make class names like My_Db_Table and load them with __autoload.

/project
- /config
- /html
- - /css
- - /images
- - /js
- - /subdirs for php files unless you use apache mod_rewrite or similar
- - index.php
- - otherfiles.php
- /lib
- - /My
- - - /Db
- - - - Table.php
- /templates
- /functions
- /scripts
OIS
I recommend including CSS and static images in the same subfolder. This means any usage of url() inside your CSS won't require a path.References to external resources from within CSS are relative to the CSS file itself; not the original HTML.
Aligma