| flashPash readme |
| version 1.0 *RC1* |
| last updated 2003-07-07 by si*sshnug.com |
- flashPash is free open source software. Please read the license details
in flashPash.license.txt. If you don't have this file, you can read it
| What is it? |
- flashPash is a database access tool designed to allow applications to easily retrieve
and update information across the internet. There are over a dozen databases supported.
Motivation to build it came from the Firefly components built by Cybersage, and a lack of
cash and desire to use flash Remoting. In a nutshell, by keeping a small amount of data
in the flash client application, flashPash is able to automatically generate SQL queries
on the server, and send the results of those queries back to the client.
- flashPash has 2 Flash MX client components and a PHP class run on the server.
- XML is used for data exchange between client and server.
- You can also operate flashPash in PHP by itself. Check the demo's.
- Please send any bug reports, ideas or changes back to si*sshnug.com. If you think flashPash
is a useful tool and you profit from it, please consider saying thanks by giving a small gift
to it's creator. Wish list is available from http://www.amazon.com/o/registry/1UTJLQWH0TDT2
| What do you need to run it? |
- A web server. Apache 2 (or 1.3) highly recommended [www.apache.org]
- PHP version 4.2 or higher running on above web server [www.php.net]
- ADOdb 2.4 or higher database abstraction class [php.weblogs.com/adodb]
- PEAR::XML_Tree class, should be included in PHP 4.3.1+ [ pear.php.net]
* ADOdb and XML_Tree are included in the flashPash installation.
- flashPash client-side components require Flash MX [www.macromedia.com]
- "flashPash using Firefly" requires Macromedia Firefly Components
- "flashPash using Recordset" needs Macromedia Flash Remoting Components
| Where is it at? |
- Current version: 1.0 *RC1*
- Changelog: read flashPash.changelog.txt.
| Thanks & Respect |
- Kudos to the sublime programmers behind the software flashPash uses.
- My wonderful, talented, and patient girlfriend Kat, da' gorgeous grüva! :Ş
- Kent at Pure Vanilla for his generous support of this open source project.
- Thanks to Dan Humphrey at TechoMedia for sharing his code and ideas.
Although flashPash has been completely redeveloped (a few times:),
it was originally branched from the fDataSet component Dan wrote.
| How do you use it? |
- For detailed code examples, see the PHP scripts and Flash actionscript demos.
Note: These demos assume your web server, database, PHP and Flash are all up
and running, that's your job, not mine :)
| Known problems and issues |
- You must have the ADOdb library installed and in your PHP path.
The same goes for XML_Tree. flashPash will assume you have pathed the
PHP.INI include_path property to the root of your includes directory.
flashPash comes with both ADOdb and XML_Tree, and the flashPash
installation executable (flashPash.exe) will install these for you.
- If you expect CDATA (character data) to be stored in the database,
you must use XML elements (nodes) instead of attributes to record field
values. Character data includes carriage returns and line feeds.
- Unlike doSaveUpdates, doUpdate can not (yet) automatically perform updates
to key fields. You can manually add an old key value by using setKey.
Check the setKey documentation for further information.
- Since flashPash RC1 was released, the Firefly demo includes a lookup field
built into the grid. There was a bug in Firefly beta 3 which makes this
field invisible after the dataset was closed and reopened. This bug was
fixed when Cybersage sold Firefly to Macromedia, but without recreating
the entire with new Firefly components, it will remain.
| Wishlist (highest priorities at the top) |
- Optimise flashPash.role.xml. Parent nodes shouldn't need to be duplicated
when child nodes have specific attributes set. Will slow things down (as
you have to search right down the XML path) so needs to be very efficient.
- For FP_ADODB_COUNTER field types, flashPash should (re)use the ADOdb model
for obtaining the next key value. It should also return the key value(s)
generated on the server back to the client, via the XML result for an insert.
- Add getNextPage(#) and getPreviousPage(#) methods to FlashPashComponentClass?
Needs to save current values, set recordLimit/limitFrom, call doSelect, restore?
# is the page size (use recordLimit if # undefined).
Probably need to add private variable to track current limitFrom, or override
public property? Paging is pretty easy in flashPash already, so i'm not sure
if this is worth the extra overhead and work...
- Option to log error messages to a file (or database?).
- Add setValue( table, field, value, oldValue? ) method to FlashPashServerClass?
- Sockets! PHP and flash MX XML objects support sockets, so it would be great
to build them into this class. The majority of code should remain unchanged,
but we would need additional properties (so a boolean switch + tcp/ip port
number at the very least) Note: Sockets if they happen will (probably) only
occur after version 1 is released and is proven stable. Some work has begun
on this already...using patServer as the framework.
- For Firefly component, would be nice to remove the need for hardcoding of
dataPacket/row in connector. Will wait and see what happens with Firefly.
- When setting meta-data to Firefly dataset, flashPash should be smarter about
field properties and would be good to bind more nicely to any linked views
- When working with Firefly components, we might want option to automatically
purge updates in resolver if a public method call was successfull.
ie. flashPash doDelete was called, but Firefly resolver thinks it still
needs to happen. It should only purge if operation successful.
- To follow OOP methodology more closely, flashPash events should be defined
using (a generic?) getEvent/setEvent function instead of directly referencing
them. Public properties has get/set methods since the RC1 release.
If going generic is desirable, there would only have to be one additional
parameter: getEvent( eventName ) and setEvent( eventName, methodName )
Also now that flashPash Firefly and Recordset components have get/set for
public properties, the FlashPashServerClass should as well.
- Add support for FULL, NATURAL and CROSS joins?
- ponder: SOAP-enabled flashPash?
- ponder: Incorporate amfdata.php class and NetConnection?