It has taken some time, but finally Solarium 3 is feature complete! It’s been tested using unittests and some small apps, so the next step is the release of RC1.
In previous posts a lot of changes were already mentioned, but here’s a quick list of changes:
- Support only PHP 5.3+
- Fully namespaced
- File restructuring and class renaming
- Code style switched from Zend Framework 1 to Symfony 2 (but Solarium is still not tied to a framework!)
- The concept of ‘Endpoints’ was introduced to support multiple Solr instances/cores in one client
- Interfaces were added for all important concepts in the library
- Internal classmaps for querytypes and components were simplified
- The default adapter has been switched to Curl
- OmitHeader support was added and enabled by default
- Edismax is now a separate component (used to be combined with Dismax)
- Http authentication support
- Support for the Extract querytype, to index various documents
- Support for the much faster PHPS Solr response data
- Custom hooks have been replaced by the very well documented and tested Symfony EventDispatcher component.
- CreateFacet* methods can now directly add the created facet
- The spellcheck component query now supports placeholders
- Tagging and excluding of the main querystring is now supported
- Added new grouping params: group.func, group.format, group.facet
- Update query supports softCommit
- The Curl adapter now has proxy support
- Geospatial functions in query helper now support dereferenced params
- Facet results can now be extracted from the response data (facets defined in the Solr config, not in your Solarium query
All the features will be documented in detail in the manual wiki soon. Example code for the new features is already included in the release. If you have any questions or run into issues while testing the new release please let it know and help to improve Solarium even further!
As this is a new major versions with lots of big changes it’s not backwards compatible. But upgrading shouldn’t require too much work either, many parts are still compatible. An upgrade guide will also be included in the docs asap.
Starting from this version no pre-packaged versions of the library will be supplied on the site anymore. The recommended way to install Solarium is by using Composer that also manages the Symfony EventDispatcher dependency. You can find Solarium on Packagist . The ‘installation’ using Composer is also something that will be described in the manual soon, but should be easy to figure out as Composer is well known by now. And if you still prefer the old way, just download a package from Github. But in that case you need to manually manage dependencies.
Please provide feedback if you use Solarium 3 (you can use a comment, Github message, the forum or Twitter).
I’d really like to hear about issues, but also if everything works just fine!