Work on Flextrine resumes!

After a few months break I have started work on Flextrine once again.  During the break I have been working a lot with Doctrine 2 in pure PHP, and have learnt a lot of things to do with both the internals of Doctrine and its practical application in a real world application.  Now that Doctrine 2 has its first stable release its time to start applying some of these lessons to Flextrine.

Here are a few of the things that will be in the upcoming release of Flextrine:

  • The ability to run multiple Flextrine applications within a single install – Flextrine will ship with a micro-framework to facilitate this along with a command line tool to create new projects.
  • Flextrine Manager functions, including entity generation, will become available through the command line (implemented through the Doctrine console tool) to aid in build processes.  The Flextrine Manager will probably be removed.
  • Configuration files will be YAML instead of PHP.
  • Support for XML, YAML as well as annotations in entities (this was done mainly to enable the use of the awesome ORM Designer) .
  • Integrated support for access control to entities using Zend_Acl.
  • Massive performance boosts when updating large objects graphs.
  • Lazily loaded collection associations can be configured to load on demand, throwing ItemPendingErrors to allow Flex components to react to the updates automatically.
  • Lazily loaded entities can also be configured to load on demand.
  • Improved DQL querying from Flex including support for named parameters.
  • Bi-directional associations are now auto-managed by Flextrine, so there is no longer a need to set both sides of the relationship.
  • An EntityManager::rollback() method that undoes any changes made to the repository.
  • Class table inheritance.
  • By default repositories hold weak references so that unused entities are eligible for garbage collection after Configuration::entityTimeToLive has elapsed (configurable globally or per repository).
  • The option to run Flextrine in PULL mode; this queues up changes but doesn’t apply them to the repositories until a successful return from em.flush() (experimental!)
  • PagedCollections which load query results as the user scrolls (experimental!)
  • Heaps of bug fixes!

Flextrine 0.9 is currently planned for release towards the end of February.

Flextrine 0.7.3 released

The Flextrine releases are flying out hard and fast!  This release gives another batch of bug fixes, enhanced functionality in various areas, better error reporting and lots more API documentation.  Flash on the Beach is just around the corner, and I’m hoping that my presentation will bring a new batch of users into the Flextrine camp.

Pick it up at

SPOILER ALERT (only if you are coming to Flash on the Beach) – here is a sneak preview of my slides for the presentation

Flextrine 0.7 released – now with ZendAMF!

After much soul searching I eventually decided to put in the time to convert Flextrine from using AMFPHP to ZendAMF.  There were a few reasons I decided to make this move, but eventually it boiled down to the fact that quite a few people had asked me to do so.  In retrospect it was certainly the right thing to do – ZendAMF has the green light from Adobe, its licence is LGPL instead of GPL and the cleaner code base means that the changes Flextrine requires can be implemented as overridden classes instead of having to modify the ZendAMF core.  This particularly is great news because it means that you can use Flextrine directly with the standard Zend framework installation, whereas previously you could only use the version of AMFPHP bundled with Flextrine.

Functionally speaking things remain exactly the same, and we continue to approach our stable release alongside Doctrine 2.

The new version of Flextrine can be downloaded from  Note that if you are upgrading from a previous version of Flextrine you will need to regenerate your AS3 entities.

Flextrine 0.5 released!

I have released the first public version of Flextrine.  Its actually pretty feature rich, and I will be focusing mainly on bug fixes and stability as reports start to come back from the community leading up to the main release on 1st September.

Major features that have made it into 0.5:

  • Entities and the entity manager
  • Single and collection associations
  • The Flextrine Manager
  • AS3 code generation
  • Lazy loading, requireOne and requireMany
  • Full Flex databinding
  • DQL queries

Flextrine can be downloaded from Google Code at  Please try it out and log any issue you might find in Google Code.