tao-test/app/tao/migrations/Version202106010945122237_tao.php

49 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
namespace oat\tao\migrations;
use Doctrine\DBAL\Schema\Schema;
use oat\tao\model\search\SearchProxy;
use oat\tao\model\search\Search;
use oat\tao\model\search\strategy\GenerisSearch;
use oat\tao\scripts\tools\migrations\AbstractMigration;
final class Version202106010945122237_tao extends AbstractMigration
{
public function getDescription(): string
{
return 'Register ' . SearchProxy::class;
}
public function up(Schema $schema): void
{
/** @var Search $currentSearch */
$currentSearch = $this->getServiceManager()->get(Search::SERVICE_ID);
$isGenerisSearch = $currentSearch instanceof GenerisSearch;
$defaultSearch = $isGenerisSearch ? $currentSearch : new GenerisSearch();
$searchProxy = new SearchProxy();
$searchProxy->withDefaultSearch($defaultSearch);
if (!$isGenerisSearch) {
$searchProxy->withAdvancedSearch($currentSearch);
}
$this->getServiceManager()->register(SearchProxy::SERVICE_ID, $searchProxy);
}
public function down(Schema $schema): void
{
/** @var SearchProxy $searchProxy */
$searchProxy = $this->getServiceManager()->get(SearchProxy::SERVICE_ID);
/** @var Search $legacySearch */
$legacySearch = $searchProxy->getAdvancedSearch() ?? $searchProxy->getDefaultSearch();
$this->getServiceManager()->unregister(SearchProxy::SERVICE_ID);
$this->getServiceManager()->register(Search::SERVICE_ID, $legacySearch);
}
}