Skip to content

v1.1.0

Choose a tag to compare

@mathsgod mathsgod released this 06 Nov 04:24
· 13 commits to main since this release

Adds provider-independent closure query translation and correlated subqueries.

  • Translate supported where() and select() closures into expression trees without executing them.
  • Add ContainsExpression, AnyExpression, NotExpression, and OuterFieldExpression, with in-memory provider support.
  • Support nested any() predicates, outer-field references, captured scalar values, and explicit translation errors for unsupported PHP syntax.
  • Allow closures in IQueryable::any() and accept entity sets implementing IQueryable directly as subquery sources.
  • Add upgrade guidance and PHP parser runtime dependency.

Upgrade notes

This minor release includes API changes during the project's initial adoption period:

  • Rename Light\Linq\Expression to Light\Linq\Expressions; update imports and provider implementations.
  • Update custom IQueryable implementations to accept closures in where(), select(), and any().
  • SQL providers must translate the new query operation nodes themselves. Use a compatible light-entity version for SQL execution.

Validation: 260 tests passed, 791 assertions, no skipped tests. Composer validation passed.