eZ\Bundle\EzPublishCoreBundle\ApiLoader\StorageEngineFactory::buildStorageEngine PHP Метод

buildStorageEngine() публичный Метод

Builds storage engine identified by $storageEngineIdentifier (the "alias" attribute in the service tag).
public buildStorageEngine ( ) : eZ\Publish\SPI\Persistence\Handler
Результат eZ\Publish\SPI\Persistence\Handler
    public function buildStorageEngine()
    {
        $repositoryConfig = $this->repositoryConfigurationProvider->getRepositoryConfig();
        if (!(isset($repositoryConfig['storage']['engine']) && isset($this->storageEngines[$repositoryConfig['storage']['engine']]))) {
            throw new InvalidStorageEngine("Invalid storage engine '{$repositoryConfig['storage']['engine']}'. " . 'Could not find any service tagged as ezpublish.storageEngine ' . "with alias {$repositoryConfig['storage']['engine']}.");
        }
        return $this->storageEngines[$repositoryConfig['storage']['engine']];
    }

Usage Example

 /**
  * @expectedException \eZ\Bundle\EzPublishCoreBundle\ApiLoader\Exception\InvalidStorageEngine
  */
 public function testBuildInvalidStorageEngine()
 {
     $configResolver = $this->getConfigResolverMock();
     $repositoryAlias = 'main';
     $repositories = array($repositoryAlias => array('engine' => 'undefined_storage_engine'), 'another' => array('engine' => 'bar'));
     $storageEngines = array('foo' => $this->getMock('eZ\\Publish\\SPI\\Persistence\\Handler'), 'bar' => $this->getMock('eZ\\Publish\\SPI\\Persistence\\Handler'), 'baz' => $this->getMock('eZ\\Publish\\SPI\\Persistence\\Handler'));
     $storageRepositoryProvider = new StorageRepositoryProvider($configResolver, $repositories);
     $factory = new StorageEngineFactory($storageRepositoryProvider);
     foreach ($storageEngines as $identifier => $persistenceHandler) {
         $factory->registerStorageEngine($persistenceHandler, $identifier);
     }
     $configResolver->expects($this->once())->method('getParameter')->with('repository')->will($this->returnValue($repositoryAlias));
     $this->assertSame($this->getMock('eZ\\Publish\\SPI\\Persistence\\Handler'), $factory->buildStorageEngine());
 }