Small but feature rich ORM, has extensible models and builders, baked in upload functionality, supporting multiple backends (rackspace, ftp), polymorphic associations, form builders, nested forms, validators

0.5.12 2016-06-14 10:49 UTC


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.

Build Status Scrutinizer Quality Score Code Coverage Latest Stable Version

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.

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.