- Dropped support for PHP 8.1 and lower (minimum PHP is now 8.2)
- Updated CI PHP matrix to 8.2 and 8.3
- Normalized MySQLi driver exception handling for modern PHP
mysqli_sql_exceptionbehavior - Hardened runtime validation for
SphinxQL,Facet,Helper, andPercolateinput contracts (fail-fast exceptions for invalid query-shape input) - Standardized driver exception message prefixes for better diagnostics (
[mysqli][...],[pdo][...]) - Expanded helper runtime API coverage (
SHOW WARNINGS,SHOW STATUS,SHOW INDEX STATUS,FLUSH RAMCHUNK,FLUSH RTINDEX,OPTIMIZE INDEX, UDF lifecycle checks) - Added fluent boolean grouping APIs (
orWhere,whereOpen/whereClose,orHaving,havingOpen/havingClose) and JOIN builders (join,innerJoin,leftJoin,rightJoin,crossJoin) - Added
orderByKnn()and broader helper wrappers for operational and Manticore-oriented commands (SHOW PROFILE/PLAN/THREADS/VERSION/PLUGINS, table status/settings/indexes, flush/reload/kill, suggest family) - Added capability discovery and feature-gating APIs (
Capabilities,getCapabilities(),supports(),requireSupport()) withUnsupportedFeatureExceptionfor unsupported command families - Added
SphinxQL::requireSupport()passthrough and convenience engine predicates onCapabilities(isManticore,isSphinx2,isSphinx3) - Added helper parity wrappers for
SHOW CHARACTER SETandSHOW COLLATION - Added
docs/feature-matrix.ymlas a feature-level support map across Sphinx2/Sphinx3/Manticore - Added capability-aware runtime tests for optional engine features (
supportsCommand, Buddy-gated checks) - Added and stabilized Sphinx 3 compatibility coverage while preserving Sphinx 2 and Manticore test behavior
- Added support for optional connection credentials (
username/password) in both PDO and MySQLi drivers (closes #208) - Added optional-index
update($index = null)flow for fluent->update()->into($index)usage (closes #184) - Added explicit
update()->compile()/execute()guard when no target index is set viainto($index)(prevents invalidUPDATESQL emission) - Restored
showTables($index = null)compatibility (SHOW TABLESfor null/empty,SHOW TABLES LIKE ...for non-empty) and removed hardcodedrtassumptions from runtime capability probes - Aligned Buddy capability flags so
callQSuggest()/callAutocomplete()are gated by detected Buddy availability - Added MVA insert/update array example in README (closes #178)
- Corrected escaping docs to reference connection-level helpers and clarified
quoteIdentifier()availability (closes #203) - Added a root
LICENSEfile (closes #171) - Migrated CI to GitHub Actions-only validation with strict composer metadata checks
- Hardened GitHub Actions reliability with SQL-readiness checks, full-history checkout for changed-line artifacts, and digest-pinned Buddy integration runtime image
- Updated documentation and added a dedicated
MIGRATING-4.0.mdguide
- Dropped support for PHP 7.3 and lower
- Fixed Exception Error for PDO Driver
- Dropped support for PHP 7.0 and lower
- Added support for PHP 8
- Dropped support for PHP 7.0 and lower
- Renamed
Foolz\SphinxQL\MatchtoFoolz\SphinxQL\MatchBuilder(BREAKING CHANGE)
- Added exception code and previous throwable to errors
- Added
setTypemethod toSphinxQLclass - Added support for
MATCHtoDELETEqueries - Updated MySQLi driver to silence internal warnings by default
- Added support for Manticore
- Added
Percolateclass forManticore - Added
orPhrasemethod toMatchclass - Added
resetFacetsmethod toSphinxQLclass - Added support for multi-document snippet call
- Fixed
Connectionexception thrown - Fixed incorrect property accessibility/visibility
- Refactored
ResultSetandMultiResultSetclasses to reduce duplicate code - Removed
Connectionerror suppression - Removed
SphinxQL\Drivers\ResultSetAdapterInterfaceconstants - Removed static
SphinxQL::createmethod - Removed deprecated
\Foolz\SphinxQL\Connection - Removed support for PHP 5.3 and HHVM
- Updated fetch type for drivers to use
booleanto return assoc/indexed arrays - Updated PHPDoc blocks
Note: This release contains breaking changes around the instantiation of the SphinxQL class with the removal of static methods. Please refer to the README for any API changes.
- Added support for
GROUP N BY - Refactored
Connection,\Foolz\SphinxQL\Connectionis now deprecated. - Refactored
ResultSetandMultiResultSetto reduce duplicate code
Note: This release contains breaking changes with the introduction of ResultSet and MultiResultSet changes. Please refer to the README for any API changes.
- Added support for unix sockets
- Added
NOT INcondition inWHEREstatements
- Added named integer lists support to
OPTIONwith associative array (@alpha0010) - Deprecated special case
OPTIONforfield_weightsandindex_weights - Forced
Connectionto use utf8 charset (@t1gor)
Expressionsupport forOPTIONvalue
- Replaced
getConnectionParams()andsetConnectionParams()withgetParam(),getParams(),setParam()(thanks to @FindTheBest) - Deprecated
getConnectionParams()andsetConnectionParams() - Added
ConnectionInterface
- HHVM support
- Added escaping of new MATCH features by lowercasing the search string
- Created
Helperclass to contain non-query-builder query methods, all returningSphinxQLobjects - Deprecated all non-query-builder query methods in
SphinxQLclass - Improved
$sq->enqueue()inSphinxQLclass to have a parameter to append any customSphinxQLobjects - Added
$sq->query()method toSphinxQLto allow setting SQL queries without executing them
- Deprecated SphinxQL::forge() with static Connection and implemented SphinxQL::create($conn)
- Added array and * support to MATCH columns (thanks to @FindTheBest)
- Added Expression support to MATCH value
- Refactored to be fully OOP
- Changed code style to be PSR-2 compliant
- Removed all unnecessary
statickeywords - Removed old bootstrap file for fuelphp
- Added Connection::ping()
- Added Connection::close()
- Fixed uncaught exception thrown by Connection::getConnection()
- Removed Array typehints
- Removed unsupported charset argument
- Fixed composer bootstrap
- Removed
Sphinxqlprefix on Connection and Expression classes
- Added Queue support
- Fixed composer bootstrap
- Improved phpunit tests
- Initial release