Hello, everyone --
I've finally found time to address David's criticisms about the use of __call() in the search objects in the 2.0 code. There are now explicit getOptions() and getParams() methods to retrieve the appropriate objects, so there's no more magic proxying going
on anywhere. This makes some of the code a bit more verbose, but it also makes it a lot easier to understand!
While I was making huge, sweeping changes, I also decided to address another small thing that's been bugging me. The search results class has a helper class for generating VuFind search URLs. All of the view templates use $this->results->getUrl()->... to
build URL queries using the helper. The thing is, though, that the helper doesn't build the whole URL -- it is only concerned with the parameters. So I've renamed the class and method to reflect this -- getUrl() is now getUrlQuery(). It's a bit more accurate
and a bit more unique, and I hope that will make the code easier to understand and maintain.
I've done a fair amount of testing, but since these changes touched so many files, it's very possible that I broke something somewhere. If you run into problems, please let me know (or just fix them and send a pull request).
Also, this reinforces the need to get more unit tests built. I've been slowly putting a few together, but (same old sad story) in the interest of getting the work done faster, I haven't been too thorough about this. If anyone is interested in helping out
with test coverage, let me know and I can show you some areas that need work and shouldn't be too hard to significantly improve. One example -- the VuFind\Search\UrlQueryHelper should be pretty easy to test.