Releases: Icinga/ipl-orm
Releases · Icinga/ipl-orm
ipl-orm v0.6.1
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
Changes
- Support for PHP 8.2
- Enhanced query performance with filters targeting to-n relations by switching from
EXISTS
toIN
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
Fixes
ipl\Orm\Behavior\Binary
does not only run in case of a PostgreSQL connection anymore #105
ipl-orm v0.5.1
ipl-orm v0.5.0
Breaking Changes
- Instances of
ipl\Orm\Contract\PropertyBehavior
now raiseipl\Orm\Exception\ValueConversionException
in methodtoDb(mixed, string, mixed)
instead ofUnexpectedValueException
orInvalidArgumentException
#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 ofipl\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
ipl-orm v0.4.0
Breaking Changes
- Dropped support for PHP 5.6, 7.0 and 7.1 #35
- Class
Resolver
now requires aQuery
as first constructor argument #38 - Class
Hydrator
now requires aQuery
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. UseQuery::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 eventON_SELECT_ASSEMBLED
#47 - Added new expression type
AliasedExpression
#50 - Support for
ipl\Stdlib\Filter\Like
andipl\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
ipl-orm v0.3.0
Version 0.3.0
TBD
ipl-orm v0.2.0
Version 0.2.0
Version 0.1.0
v0.1.0 Version 0.1.0