Application framework
| From: | Michael Dransfield | Date: | Tue, 01 Oct 2002 15:34:27 +0000 |
| Subject: | Application framework | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-9752@lists.php.net to get a copy of this message | ||
I am looking into the possibility of an (GTK) Application framework for PEAR, something like NetBeans Platform for java (www.netbeans.org). I would like the groups thoughts on if this could be done and what would need to be included to make it easy to write applications.
I am thinking that there would be a base application which would set up the main window (menu and status bar etc) and then additional modules which can be loaded to provide additional functionality (user authentication, text editing facilities). People can write additional modules which can also be contributed to PEAR.
Below is what I have managed to come up with so far. Please feel free to comment.
Wizards
- Ability to load a number of frames along with actions to be caried out at each click of the next button.
- Clean-up facility if cancelled.
Authentication
- Taken care of with PEAR Auth package, would probably need extending to show login box etc.
Logging
- Mostly catered for in pear already.
Modules
- Ability to dynamically load gui and menu items along with their relavent actions.
- osCommerce (oscommerce.org) has a nice module system which could be partly copied
Auto Update
- Either using a diff system or replacing whole files
- Ability for the user to turn this feature on and off
Form generation / validation
- Something like OOForms, im not sure if this could be extended or if it is easier to write a seperate class all together (probably easier to do this)
UI Features
- File loading and project routines to ease loading of files
Config / Options
- Config classes exist in pear which can be extended to provide a user interface to the options
Caching of remote database
- For offline working. Maybe can include an offline update facility where changes locally are queued until the user is online and updates to the remote database can be done. Hashes of each row could be stored and compared at update time to check that no other changes have taken place.
Cheers
Mike