The following is an outline for the development of the sqlpersist project.
* sqlpersist is a PHP project, other development platforms will not be catered for.
* sqlpersist development will happen under Linux and Windows, code will be written as generically as possible but no special effort will be made for other OS’s. Porting should be possible with minimal effort but will
Not be a primary design goal.
* sqlpersist is to be implemented as a series of PHP include files. Sqlpersist will be implemented as an extension once binary files are supported as a store for object data.
* A variety of databases will be supported, primary development will however focus on MySQL, Postgres and MS-SQL.
* A project developed using sqlpersist, implemented with a given DB (e.g. MySQL), can be implemented on another DBMS (e.g. Postgres) with minimal (almost no) effort (e.g. by changing the DB in a configuration file).
* A program based on sqlpersist and written to sqlpersist-specification which has been installed and used for a while, may be transferred to another system/DB retaining the state of the application/user-data. This
means that an application which was installed and used for a while under, e.g. Linux/Postgres may be transferred to MS-Windows/MySql retaining the state of the application (and Visa-Versa).
* SPEED : Although sqlpersist will be lightweight, the primary design goal is not speed but usability. Typical applications should cater for 1 to 1000 concurrent users and not hundreds of thousands of users.
Time-critical sections of code, implemented as sqlpersist objects should be carefully considered as well as objects that need to be loaded/saved many hundreds of times during the execution of code. Sqlpersist is not
developed with the goal of saving state every time an object’s state changes (unless the number of times this happens is low) but to save the state after a series of changes...
|