Radicore
From Wikipedia, the free encyclopedia
Radicore is a PHP-based rapid application development toolkit for building administrative web applications which are platform independent, browser independent and database independent.
It is based on a combination of the 3 tier Architecture and model-view-controller design pattern and comes with pre-built and reusable components in the data access and presentation layers.
- The Data Access Object comes pre-built and will generate all SQL queries at runtime.
- The View component is managed by a pre-built collection of reusable XSL (Extensible Stylesheet Language) stylesheets which generate all HTML output.
- The Controller component is managed by a pre-built collection of reusable scripts which handle all communication with the user and any Model components.
- The Model component is initially created from the Data Dictionary, but then can be modified to include any business rules. Code inherited from a superclass handles all communication with the Data Access Object.
The View and Controller components come in matched pairs in order to implement each of the transaction patterns. The RADICORE framework thus removes the need for developers to spend valuable time in writing repetitive SQL and HTML code, which means that they can devote 95% of their time on the most critical part of any system - the business rules.
The RADICORE framework also contains a collection of pre-built components which are runnable 'out of the box':
- A Data Dictionary which takes the drudgery out of building all Model components.
- A Dynamic Menu system which takes the drudgery out of coding a hierarchy of menu screens.
- A Role-Based Access Control system which allows access control lists to be defined and customised for any number of users and user groups.
- An Audit Logging system which will record all database changes in a central AUDIT database without the need for database triggers, and allows this data to be viewed with a standard set of online screens.
- An activity-based Workflow system which will allow the execution of any transaction to automatically set in motion a chain of other transactions.
- Internationalisation facilities which will allow screen labels and error messages to be supplied in different languages without having to modify any core code.