SS 4.0 - Upgrade FullTextSearch, queries and updaters

This commit is contained in:
Brett Tasker 2017-04-26 23:13:26 +12:00
parent 590ac4cb25
commit 022575fadb
4 changed files with 16 additions and 9 deletions

View File

@ -3,7 +3,10 @@
namespace SilverStripe\FullTextSearch\Search;
use SilverStripe\Core\Config\Config;
use SilverStripe\ORM\DataObject;
use SilverStripe\Core\ClassInfo;
use ReflectionClass;
/**
* Base class to manage active search indexes.
*/

View File

@ -1,11 +1,15 @@
<?php
namespace SilverStripe\FullTextSearch\Search\Indexes;
namespace SilverStripe\FullTextSearch\Search\Queries;
use SilverStripe\View\ViewableData;
use stdClass;
/**
* Represents a search query
*
* API very much still in flux.
*/
use SilverStripe\View\ViewableData;
class SearchQuery extends ViewableData
{
public static $missing = null;

View File

@ -6,6 +6,7 @@ use SilverStripe\ORM\DB;
use SilverStripe\Core\Object;
use SilverStripe\FullTextSearch\Search\Variants\SearchVariant;
use SilverStripe\ORM\DataObject;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\FullTextSearch\Search\FullTextSearch;
use SilverStripe\FullTextSearch\Search\SearchIntrospection;
use SilverStripe\Core\Injector\Injector;
@ -173,9 +174,8 @@ class SearchUpdater extends Object
// Don't do it if we're testing - there's no database connection outside the test methods, so we'd
// just get errors
$runningTests = class_exists('SapphireTest', false) && SapphireTest::is_running_test();
if (self::$processor && !self::$registered && !$runningTests) {
if (self::$processor && !self::$registered && !SapphireTest::is_running_test()) {
register_shutdown_function(array(SearchUpdater::class, "flush_dirty_indexes"));
self::$registered = true;
}
@ -203,6 +203,3 @@ class SearchUpdater extends Object
self::$processor = null;
}
}

View File

@ -1,7 +1,10 @@
<?php
namespace SilverStripe\FullTextSearch\Search\Updaters;
use SilverStripe\ORM\DataExtension;
use SilverStripe\FullTextSearch\Search\Variants\SearchVariant;
use SilverStripe\ORM\DataObject;
/**
* Delete operations do not use database manipulations.
@ -43,7 +46,7 @@ class SearchUpdater_ObjectHandler extends DataExtension
$id = $this->owner->ID;
$class = $this->owner->ClassName;
$state = SearchVariant::current_state($class);
$base = ClassInfo::baseDataClass($class);
$base = DataObject::getSchema()->baseDataClass($class);
$key = "$id:$base:".serialize($state);
$statefulids = array(array(
@ -63,4 +66,4 @@ class SearchUpdater_ObjectHandler extends DataExtension
SearchUpdater::process_writes($writes);
}
}
}