Skip to content
This repository has been archived by the owner on Jan 30, 2020. It is now read-only.

Commit

Permalink
Merge pull request zendframework/zendframework#6758 from samsonasik/i…
Browse files Browse the repository at this point in the history
…mp.todo.adapter

add getAdapterInstance() that return adapter instance at Zend\Filter\Encrypt
  • Loading branch information
weierophinney committed Feb 24, 2015
149 parents 7ea6197 + eb8d23e + f47ca61 + 797cb3c + 7df9cd3 + bc13fad + 90cc541 + 35ec740 + acfbbcd + 691454a + 3de0bd7 + 700917d + f10c3b2 + 4f82a12 + ba0d8a9 + c140dfc + 6c6a51d + 473be1c + 33a0274 + 56352fd + 8119cdf + 61d3103 + 4a23da8 + aed1a4d + d208606 + 3f667bd + 617a96b + ddb5852 + 6e16921 + 9418fac + 17b5ef4 + 846edfb + 216ac0e + aecb8f4 + ef44cf1 + bc4610b + 8c773ad + 0481606 + d1304e2 + d3d5a56 + 533570c + 6e30cb0 + 82c88d1 + 88c4f3b + c96ebb3 + f0320b1 + cb0afaa + 128be4b + 34cd6a3 + ec2aab9 + 809bd88 + 77026e3 + c2796da + 0ee8602 + bf4e728 + cd33c2d + 32497e5 + 79eb7d0 + 8cc5d58 + 869ab1c + 436e613 + ab7d56c + 6dbeef6 + 84670b1 + cccfba9 + 2717653 + b4dd364 + 460818e + b5ac15d + 2d218aa + 046d669 + 5597f80 + 98dc299 + 01b3149 + b0177b5 + 74f8270 + 62799e5 + 512426e + 5a9a928 + 3b3e691 + 6f57ae9 + 116cf37 + bb991fd + 1ce1893 + 5000327 + 32beb38 + fe88f0e + 49921e6 + 6387996 + 9623b87 + fef33e6 + a55293c + 37a7d0c + aeda378 + 1681df7 + 8557890 + 792de65 + 072f053 + fbc1502 + 482716d + 0da8a0e + 7d9112c + ca312d7 + cef4359 + 711d775 + 7826111 + 14b10f4 + 7b6700e + f304770 + 57e491b + c3425d2 + d591073 + 2235288 + d4694ac + 56d8e16 + 07f05df + 622531f + 641a66a + 4938b37 + 4bda1f3 + b1e478c + bf4b889 + fe09441 + b5e7532 + 149b9b1 + 90ed0aa + e6d18f9 + 3417ce7 + 6fe2e03 + c8263a5 + 163cb93 + c5ac758 + 477bd0b + fda1abb + 6b484d8 + 79a0d3d + 6fdffb1 + cf50c78 + a2b31ea + f374b87 + 10d41ef + 8933479 + 5bba450 + 163c322 + a349d33 + e3472c4 + 5b271b3 + 7eee6bd + dd40630 commit bf383e6
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
34 changes: 33 additions & 1 deletion src/Encrypt.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,41 @@ public function __construct($options = null)
$this->setAdapter($options);
}

/**
* Returns the adapter instance
*
* @throws Exception\RuntimeException
* @throws Exception\InvalidArgumentException
* @return Encrypt\EncryptionAlgorithmInterface
*/
public function getAdapterInstance()
{
if ($this->adapter instanceof Encrypt\EncryptionAlgorithmInterface) {
return $this->adapter;
}

$adapter = $this->adapter;
$options = $this->getOptions();
if (!class_exists($adapter)) {
$adapter = 'Zend\\Filter\\Encrypt\\' . ucfirst($adapter);
if (!class_exists($adapter)) {
throw new Exception\RuntimeException(sprintf(
'%s unable to load adapter; class "%s" not found',
__METHOD__,
$this->adapter
));
}
}

$this->adapter = new $adapter($options);
if (!$this->adapter instanceof Encrypt\EncryptionAlgorithmInterface) {
throw new Exception\InvalidArgumentException("Encryption adapter '" . $adapter . "' does not implement Zend\\Filter\\Encrypt\\EncryptionAlgorithmInterface");
}
return $this->adapter;
}

/**
* Returns the name of the set adapter
* @todo inconsitent: get adapter should return the adapter and not the name
*
* @return string
*/
Expand Down
2 changes: 2 additions & 0 deletions test/DecryptTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,11 @@ public function testSettingAdapterManually()
$filter = new DecryptFilter();
$filter->setAdapter('Openssl');
$this->assertEquals('Openssl', $filter->getAdapter());
$this->assertInstanceOf('Zend\Filter\Encrypt\EncryptionAlgorithmInterface', $filter->getAdapterInstance());

$filter->setAdapter('BlockCipher');
$this->assertEquals('BlockCipher', $filter->getAdapter());
$this->assertInstanceOf('Zend\Filter\Encrypt\EncryptionAlgorithmInterface', $filter->getAdapterInstance());

$this->setExpectedException('\Zend\Filter\Exception\InvalidArgumentException', 'does not implement');
$filter->setAdapter('\\ZendTest\\Filter\\TestAdapter');
Expand Down
2 changes: 2 additions & 0 deletions test/EncryptTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,11 @@ public function testSettingAdapterManually()
$filter = new EncryptFilter();
$filter->setAdapter('Openssl');
$this->assertEquals('Openssl', $filter->getAdapter());
$this->assertInstanceOf('Zend\Filter\Encrypt\EncryptionAlgorithmInterface', $filter->getAdapterInstance());

$filter->setAdapter('BlockCipher');
$this->assertEquals('BlockCipher', $filter->getAdapter());
$this->assertInstanceOf('Zend\Filter\Encrypt\EncryptionAlgorithmInterface', $filter->getAdapterInstance());

$this->setExpectedException('Zend\Filter\Exception\InvalidArgumentException', 'does not implement');
$filter->setAdapter('\ZendTest\Filter\TestAdapter2');
Expand Down

0 comments on commit bf383e6

Please sign in to comment.