Download the PHP package quellabs/objectquel without Composer
On this page you can find all versions of the php package quellabs/objectquel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download quellabs/objectquel
More information about quellabs/objectquel
Files in quellabs/objectquel
Package objectquel
Short Description A sophisticated ORM system with a unique query language and streamlined architecture
License MIT
Informations about the package objectquel
ObjectQuel
A domain-level query language and engine for PHP, with a full ORM attached. ObjectQuel's declarative syntax inspired by QUEL expresses entity queries above the table level — relationships, patterns, full-text search, and cross-source joins are first-class expressions, not raw SQL escapes. Supports MySQL, PostgreSQL, SQLite, and SQL Server.
The engine resolves entity relationships, decomposes the query into optimized SQL, and hydrates the results. You write intent; ObjectQuel handles the mechanics.
Installation
Upgrading to 2.0
Version 2.0 introduces breaking changes to the relationship annotation model:
@OneToManyis removed. Replace it with@InverseOf(targetEntity=..., relation="...")on the owning entity's inverse collection property.InverseOfis a hydration instruction only — it does not define a relationship or generate a join.- Non-owning
@OneToOneis removed. The non-owning side of a OneToOne relationship should now be declared with@InverseOfinstead. @OneToOneis owning-side only. Every@OneToOneannotation must hold the foreign key column.
Before:
After:
Quick start
What the query language can do that others can't
Most ORM query languages are SQL with different syntax. ObjectQuel's abstraction layer sits above SQL, which lets it do things that aren't possible in DQL, Eloquent, or raw query builders:
Pattern matching and regex in where clauses:
The equivalent in Doctrine requires $qb->expr()->like() or a raw REGEXP call. In Eloquent you'd write
whereRaw('name REGEXP ?', [...]). ObjectQuel treats patterns as first-class query expressions.
Full-text search with boolean operators and weighting:
No raw SQL, no engine-specific syntax. The query engine translates this to the appropriate full-text implementation for your database.
Hybrid data sources — database + JSON in one query:
ObjectQuel can join database entities with JSON files in a single query, applying inner, left, or cross joins based on context — the engine handles the cross-source matching. Neither Doctrine nor Eloquent can do this. You'd query the database, load the JSON separately, and merge results in PHP. ObjectQuel also supports JSONPath prefiltering to extract nested structures before the query runs, keeping memory usage low on large files.
Existence checks as expressions:
Automatic query decomposition:
Complex queries are split into optimized sub-tasks by the engine rather than sent as a single monolithic SQL statement. This means ObjectQuel can optimize execution paths that a single SQL query cannot express efficiently.
Database dialect abstraction:
Features like full-text search, regex matching, and window functions compile to the correct SQL for your target database. The same ObjectQuel query runs on MySQL, PostgreSQL, SQLite, and SQL Server without modification. Switching databases means changing the connection, not rewriting queries.
Comparison
A multi-entity query with filtering and relationship traversal:
ObjectQuel:
Doctrine DQL:
Eloquent:
The difference becomes more pronounced with regex filtering, existence checks, hybrid sources, and multi-relationship traversals — operations that require raw SQL or post-processing in other ORMs.
ORM capabilities
ObjectQuel is a full Data Mapper ORM, not just a query language:
- Entity mapping — annotation-based with
@Orm\Table,@Orm\Column, and relationship annotations - Relationships — OneToOne, ManyToOne, InverseOf (hydration target for inverse collections), ManyToMany (via bridge entities)
- Unit of Work — change tracking with persist and flush
- Lazy loading — configurable proxy generation with caching
- Immutable entities — for database views and read-only tables
- Optimistic locking — version-based concurrency control
- Cascading — configurable cascade operations across relationships
- Lifecycle events — pre/post persist, update, and delete via SignalHub
- Custom repositories — optional repository pattern with type-safe access
- Indexing — annotation-driven index management
- Migrations — database schema migrations powered by Phinx
CLI tooling
ObjectQuel ships with Sculpt, a CLI tool for entity and schema management:
make:entity-from-table is particularly useful when adopting ObjectQuel in an existing project — point it at your
tables and get annotated entities without writing them by hand.
Framework integration
ObjectQuel works standalone or with the Canvas framework. The quellabs/canvas-objectquel
package provides automatic service discovery, dependency injection, and Sculpt CLI integration within Canvas.
For other frameworks, configure the EntityManager directly — it has no framework dependencies.
Documentation
Full query language reference, entity mapping guide, and architecture docs: objectquel.com/docs
Support
If ObjectQuel saves you time, consider sponsoring development.
License
MIT
All versions of objectquel with dependencies
ext-json Version *
ext-pdo Version *
robmorgan/phinx Version ^0.16
cakephp/database Version ^5.3
softcreatr/jsonpath Version ^0.8
quellabs/contracts Version ^1
quellabs/support Version ^1
quellabs/signal-hub Version ^1
quellabs/annotation-reader Version ^1
quellabs/sculpt Version ^1