This wiki is archived and useful information is being migrated to the main bzflag.org website
GMS Architecture
A three-tier architecture was chosen to allow the interface to be changed independently of the application/business logic, and to allow the data storage technology to be changed (database, LDAP etc) without impacting the application/business logic layer.
Contents
Smarty Templates[edit]
The Smarty PHP Template Engine will be used to cleanly separate the application logic from the presentation code. Smarty uses place-holder tags which are replaced with live content at run-time.
Note that Smarty version 3 requires PHP version 5.0 or later, however an earlier version Smarty 2 will work on PHP version 4.
Database Abstraction[edit]
The Active Data Objects DataBase ADODB database abstraction library will be used to 'insulate' the application logic from the underlying database server (MySQL). Using this abstraction layer will enable the underlying database technology to be changed from MySQL to some other database (eg FireBird, PostgreSQL, LDAP etc) without requiring a change to the application logic.
Note that PHP version 5.0 or later is required.
GMS Controllers[edit]
These are objects providing functions within the application logic, and may be implemented as methods.
GMS PHP Pages[edit]
These are objects providing the core application logic.
Data Access Components[edit]
These are objects providing access to underlying database tables, reading values from tables into objects, storing values etc.
Zend PHP Engine[edit]
This is the engine on the my.bzflag.org web server which interprets PHP code.