GNU Herds - Free Software Association - Cookbook: recipe #180, Web application architecture
recipe #180: Web application architecture
As a Free Software project GNU Herds looks for a modular and extensible design. We hope it could be easy to change the technology of a specific layer if it is needed.
This architecture proposal is based on PHP:
Layer 0. Site entry point (HTML, CSS, Smarty, Apache SSI and PHP ).
Layer 1. GUI page builder and themes (PHP)
Layer 2. GUI business logic: content section, others (forms checking and processing) (PHP, HTML)
Layer 4. Data base Manager class, PHP Tools class and Mailer class (PHP)
Layer 5. Data base Operation classes (PHP, SQL)
Layer .. No ADOdb Database Abstraction Library layer or similar (PHP).
Layer .. No stored procedures layer (extension to the SQL language).
Layer 7. PostgreSQL data base server (PostgreSQL, SQL)
locale Here are the files which translate the webapp (gettext)
Layers (outdated image)
.
Since the Model View Controller (MVC) pattern perspective:
The Model[M] is the Layer-5, being accessed from its interface (Layer-4).
The Layer-4 takes care managing the Access Control List (ACL). Note that ACL is not authentication but authorization.
The Controller[C] is composed by the 0, 1, and 2 layers:
- Layer 1 is the core of the controller, where the web page is build:
- Layer 2 keeps the business logic of the controller:
- Layer 0 is the entry point to the controller:
The View[V] is Smarty.
.
Reference: http://lists.gnu.org/archive/html/gnuherds-app-dev/2008-05/msg00034.html
Audience and Context
Audience:Anonymous Users
(As there is at least one of the Audience/Feature/Action context information not set, this recipe will not show up in related recipes links)

Related Recipes:
