Skip to content

Releases: Icinga/ipl-orm

ipl-orm v0.6.1

08 Apr 15:05
v0.6.1
d210c47
Compare
Choose a tag to compare

Changes

  • Allow rewrite filter behaviors to finish processing #133

Notes

  • Ensure compatibility with PHP 8.3

Fixes

  • Properly qualified relation columns are spilled onto the base model after the first row of a result set has been hydrated #123
  • If the base table or relation name contain an underscore, custom aliases are not hydrated correctly #125
  • Custom columns are not hydrated correctly if an alias prefix is in use #127
  • FilterProcessor: Ignore NULL results in NOT IN conditions #132

ipl-orm v0.6.0

21 Sep 08:53
v0.6.0
Compare
Choose a tag to compare

Changes

  • Support for PHP 8.2
  • Enhanced query performance with filters targeting to-n relations by switching from EXISTS to IN sub queries #110

Fixes

  • FilterProcessor now assembles != filters targeting to-n relations correctly #111
  • Enhanced hydration performance of queries with specific columns and many model behaviors by 1000% (or less) #112
  • Model behaviors are not applied twice anymore to filters which are placed in sub-queries #48
  • Combining the != filter with !~ does not duplicate != and override !~ anymore #117

ipl-orm v0.5.2

15 May 08:36
v0.5.2
f8cd49c
Compare
Choose a tag to compare

Fixes

  • ipl\Orm\Behavior\Binary does not only run in case of a PostgreSQL connection anymore #105

ipl-orm v0.5.1

12 Apr 10:13
v0.5.1
Compare
Choose a tag to compare

Fixes

  • ipl\Orm\Query::withColumns() supports instances of ipl\Sql\ExpressionInterface again #102
  • ipl\Orm\Query::withColumns() also supports custom aliases again #104

ipl-orm v0.5.0

22 Mar 08:56
v0.5.0
Compare
Choose a tag to compare

Breaking Changes

  • Instances of ipl\Orm\Contract\PropertyBehavior now raise ipl\Orm\Exception\ValueConversionException in method toDb(mixed, string, mixed) instead of UnexpectedValueException or InvalidArgumentException #88

Changes

  • Added method ipl\Orm\Query::withoutColumns(string|array) #99
  • Added class ipl\Orm\Behavior\MillisecondTimestamp #83
  • Added class ipl\Orm\Behavior\BoolCast #84
  • Models can now define a table alias. It may be used in references in addition to the table name. #82

Fixes

  • In case ipl\Orm\Relation\BelongsToMany::through(string) has never been called, a more descriptive error is thrown #90
  • ipl\Orm\Query::order(ipl\Sql\Select) now processes order by rules defined as instances of ipl\Sql\ExpressionInterface correctly #86
  • Models can now use relative column references in expressions #85
  • Selecting a column multiple times doesn't lead to duplicate references in the SELECT list anymore #79

ipl-orm v0.4.1

06 Jul 08:38
v0.4.1
Compare
Choose a tag to compare

Fixes

  • ipl\Orm\Behavior\Binary failed if it retrieved already strings #69
  • The amount of items delivered by ipl\Orm\ResultSet was off by 1 when iterating the second time over it, while peeking ahead #67

ipl-orm v0.4.0

15 Jun 12:30
v0.4.0
Compare
Choose a tag to compare

Breaking Changes

  • Dropped support for PHP 5.6, 7.0 and 7.1 #35
  • Class Resolver now requires a Query as first constructor argument #38
  • Class Hydrator now requires a Query as first constructor argument #49
  • To-one relations are now not immediately fetched upon property access (lazy loading) #55
  • Custom aliases that match fully qualified names are now hydrated to their respective relation model, previously they were registered on the base model #52
  • Automatic group by statements are not provided anymore by implementing Model::getAggregateColumns() #46
  • Multiple calls to Query::columns() are not additive anymore. Every call overrides the current set columns instead #62
  • Method Query::setColumns() has been removed. Use Query::columns() instead #62
  • Interface RewriteBehavior has been split into two separate interfaces #63
  • Models don't provide meta data anymore. They provide column definitions instead #64

Changes

  • Support for PHP 8.1 #35
  • Added new factory method ResultSet::fromQuery() #36
  • Behaviors can now be QueryAware #42
  • Instances of Query now emit the event ON_SELECT_ASSEMBLED #47
  • Added new expression type AliasedExpression #50
  • Support for ipl\Stdlib\Filter\Like and ipl\Stdlib\Filter\Unlike #61
  • Instances of Model can now define custom defaults for properties #51
  • Added first implementation of behavior PropertyBehavior: ipl\Orm\Behavior\Binary #60
  • Selecting or ordering by alias works now, also applies to AliasedExpressions of course #56
  • Added new method Query::withColumns() which allows to select specific columns without disabling eager loading of relations #62
  • Models can now provide column definitions which can be accessed in a more OOP manner than before #64

Fixes

  • If using a populated model to create a sub query, the conditions to link it with the parent query now use persist behaviors correctly #43
  • Rewrite behaviors of relations are now respected #53

ipl-orm v0.3.0

10 Nov 13:45
v0.3.0
Compare
Choose a tag to compare

Version 0.3.0

TBD

ipl-orm v0.2.0

15 Jun 14:20
v0.2.0
Compare
Choose a tag to compare
Version 0.2.0

Version 0.1.0

12 Mar 14:59
v0.1.0
ff382f7
Compare
Choose a tag to compare
v0.1.0

Version 0.1.0