From e7420a584db71b45ad84ff02f0ed31e24ab5ce60 Mon Sep 17 00:00:00 2001 From: Raissa North Date: Wed, 14 Mar 2018 14:43:37 +1300 Subject: [PATCH] NEW Update to use proxied DB instead of self-proxied --- _config/database.yml | 34 +++---------------- composer.json | 3 +- .../SearchManipulateCapture_MySQLDatabase.php | 4 +++ ...chManipulateCapture_PostgreSQLDatabase.php | 4 +++ ...earchManipulateCapture_SQLite3Database.php | 4 +++ src/Search/Extensions/ProxyDBExtension.php | 19 +++++++++++ 6 files changed, 37 insertions(+), 31 deletions(-) create mode 100644 src/Search/Extensions/ProxyDBExtension.php diff --git a/_config/database.yml b/_config/database.yml index c81fb42..6eea6f0 100644 --- a/_config/database.yml +++ b/_config/database.yml @@ -1,32 +1,6 @@ --- -Name: fulltextsearchmysql -After: - - 'databaseconnectors' +Name: fulltextsearchproxydb --- -SilverStripe\Core\Injector\Injector: - MySQLDatabase: - class: SilverStripe\FullTextSearch\Search\Captures\SearchManipulateCapture_MySQLDatabase - MySQLPDODatabase: - class: SilverStripe\FullTextSearch\Search\Captures\SearchManipulateCapture_MySQLDatabase - ---- -Name: fulltextsearchpostgresql -After: - - 'postgresqlconnectors' ---- -SilverStripe\Core\Injector\Injector: - PostgrePDODatabase: - class: SilverStripe\FullTextSearch\Search\Captures\SearchManipulateCapture_PostgreSQLDatabase - PostgreSQLDatabase: - class: SilverStripe\FullTextSearch\Search\Captures\SearchManipulateCapture_PostgreSQLDatabase - ---- -Name: fulltextsearchsqlite -After: - - 'sqlite3connectors' ---- -SilverStripe\Core\Injector\Injector: - SQLite3PDODatabase: - class: SilverStripe\FullTextSearch\Search\Captures\SearchManipulateCapture_SQLite3Database - SQLite3Database: - class: SilverStripe\FullTextSearch\Search\Captures\SearchManipulateCapture_SQLite3Database +TractorCow\SilverStripeProxyDB\ProxyDBFactory: + extensions: + - SilverStripe\FullTextSearch\Search\Extensions\ProxyDBExtension diff --git a/composer.json b/composer.json index fb3bf2d..a84179c 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,8 @@ "silverstripe/framework": "^4.0", "monolog/monolog": "~1.15", "ptcinc/solr-php-client": "^1.0", - "symfony/process": "^3.2" + "symfony/process": "^3.2", + "tractorcow/silverstripe-proxy-db" : "~0.1" }, "require-dev": { "silverstripe/cms": "^4.0", diff --git a/src/Search/Captures/SearchManipulateCapture_MySQLDatabase.php b/src/Search/Captures/SearchManipulateCapture_MySQLDatabase.php index dd78f8e..a336339 100644 --- a/src/Search/Captures/SearchManipulateCapture_MySQLDatabase.php +++ b/src/Search/Captures/SearchManipulateCapture_MySQLDatabase.php @@ -5,6 +5,10 @@ namespace SilverStripe\FullTextSearch\Search\Captures; use SilverStripe\ORM\Connect\MySQLDatabase; use SilverStripe\FullTextSearch\Search\Updaters\SearchUpdater; +/** + * @deprecated 3.1...4.0 Please use tractorcow/silverstripe-proxy-db to proxy the database connector instead + */ + class SearchManipulateCapture_MySQLDatabase extends MySQLDatabase { diff --git a/src/Search/Captures/SearchManipulateCapture_PostgreSQLDatabase.php b/src/Search/Captures/SearchManipulateCapture_PostgreSQLDatabase.php index 8d38854..c1c2d1c 100644 --- a/src/Search/Captures/SearchManipulateCapture_PostgreSQLDatabase.php +++ b/src/Search/Captures/SearchManipulateCapture_PostgreSQLDatabase.php @@ -9,6 +9,10 @@ if (!class_exists(PostgreSQLDatabase::class)) { return; } +/** + * @deprecated 3.1...4.0 Please use tractorcow/silverstripe-proxy-db to proxy the database connector instead + */ + class SearchManipulateCapture_PostgreSQLDatabase extends PostgreSQLDatabase { public $isManipulationCapture = true; diff --git a/src/Search/Captures/SearchManipulateCapture_SQLite3Database.php b/src/Search/Captures/SearchManipulateCapture_SQLite3Database.php index 9c1fcbf..88027f9 100644 --- a/src/Search/Captures/SearchManipulateCapture_SQLite3Database.php +++ b/src/Search/Captures/SearchManipulateCapture_SQLite3Database.php @@ -9,6 +9,10 @@ if (!class_exists(SQLite3Database::class)) { return; } +/** + * @deprecated 3.1...4.0 Please use tractorcow/silverstripe-proxy-db to proxy the database connector instead + */ + class SearchManipulateCapture_SQLite3Database extends SQLite3Database { diff --git a/src/Search/Extensions/ProxyDBExtension.php b/src/Search/Extensions/ProxyDBExtension.php new file mode 100644 index 0000000..50ecd91 --- /dev/null +++ b/src/Search/Extensions/ProxyDBExtension.php @@ -0,0 +1,19 @@ +addMethod('manipulate', function ($args, $next) { + $manipulation = $args[0]; + SearchUpdater::handle_manipulation($manipulation); + return $next(...$args); + }); + } +}