After a lot of work and many contributions from valued community members Idiorm and Paris versions 1.4.0 have been released into the wild. You can download them now from their respective repositories or via Composer/Packagist.

As you are probably aware from my previous posts Idiorm is a minimalist ORM that is targetted at PHP 5.2 and above. It combines a fluent query builder with a simple ORM interface to allow fast and easy access to databases over PDO. On top of this can sit Paris, if you so choose, which acts as a lightweight active record implementation to allow for more defined functionality and models. Both Idiorm and Paris have shared the same minimalist philosophy since their inception with the key aim being to provide compact and simple, but powerful code. This makes for a smaller and easier to learn set of libraries with less namespace pollution (it supports PHP 5.2 remember).

This lightweight and simple philosophy has been challenged along the way with requests for ever more complicated features to be added to the libraries. Unfortunately this has led to some pull requests being summarily closed over the past year or so, but for good reason. It is this very reason that has led Jamie and myself to decide that both Idiorm and Paris are more than feature complete at this time. So many useful features have been submitted over the years and we have been able to adopt most of them - some of them are out there as forks.

So what am I alluding to? Idiorm and Paris will no longer receive new features going forward. Of course bug fixes will still be maintained along with support of the libraries via the respective GitHub issue trackers. So if you find any issues please report them or better yet if you have bug fixing patches please submit them (preferably with a regression test or two).

Should you wish to add features to either library or raise their minimum requirement above PHP 5.2 then you are more than welcome to create your own fork for this purpose. You can, if you like, open a pull request, but it is likely to be given short shrift if I am honest.

Anyway with that out of the way there are a few niceties that Idiorm 1.4.0 brings with it:

  • find_many() now returns an associative array with the databases primary ID as the array keys
  • Calls to set() and set_expr() return $this allowing them to be chained
  • PSR-1 compliant camelCase methods can be mapped to the original underscore ones (PHP 5.3+ required due to __callStatic() usage``)
  • Add get_config() to access configuration values
  • Support for a logging callback function allowing usuage of any logging library
  • MS SQL TOP select query limit style support
  • And many smaller bug fixes

Paris 1.4.0 also comes with a few new features:

  • Ability to methods against the model class directly eg. User::find_many() (PHP 5.3+ required)
  • find_many() now returns an associative array with the databases primary ID as the array keys
  • PSR-1 compliant camelCase methods can be mapped to the original underscore ones (PHP 5.3+ required due to __callStatic() usage``)
  • And a couple of smaller bug fixes

There you have it. Idiorm and Paris have matured!