Jam is a small ORM for Kohana 3.3+ that builds on top of Jelly - the project was originally started by Jonathan Geiger and co-developed by Paul Banks.
Jam adds some much needed features to Jelly project,
- Lazy loading of collections
- Modifying Collections on the fly and saving the changes
- Extending Builder, Model and Meta classes with mixins
- Sane validation checks that don't always throw exceptions
- Mass assignment of related models with arrays (easy nested forms)
- Associations separate from Fields - more powerful and easier to extend
- Polymorphic Associations (MTI(Multiple Table Inheritance))
- A lot of tweaks to the api to make it more consistent and to remove redundancy
- Upload Files with temporary directory to survive validation fail (do not upload images twice in forms)
- Upload File Servers - Local, FTP and Rackspace
- Automatically store Uploaded images width / height to relevant fields
- Built In Popular behaviors - Paranoid, Sluggable, Nested, Sortable, Uploadable
- Updated files to the Kohana convention (inside kohana directory)
- Versitile form builder with automattic error display
As the original Jelly had a lot of great but undocumented functionality This guide will try to write about both about the new features and the hidden gems of Jelly, as a more comprehensive guide.
- Getting Started
- Writing Models & Builders
- Validators
- Fields
- Uploads
- Associations
- Builder
- Behaviors
- Form Builder
Jam was developed by Despark Team as part of the Clippings Project
The guide itself is heavily influenced by Rails Guides - they did amazing work of creating an accessible documentation and as I'm not much of a writer I've tried to follow their example as much as possible.