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

Commit

Permalink
Merge branch 'master' of https://github.com/zendframework/zf2
Browse files Browse the repository at this point in the history
  • Loading branch information
Show file tree
Hide file tree
Showing 3 changed files with 155 additions and 53 deletions.
115 changes: 62 additions & 53 deletions src/FilterPluginManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,65 +20,74 @@
*/
class FilterPluginManager extends AbstractPluginManager
{
/**
* Default set of plugins factories
*
* @var array
*/
protected $factories = array(
'wordseparatortoseparator' => 'Zend\Filter\Word\Service\SeparatorToSeparatorFactory',
);

/**
* Default set of filters
*
* @var array
*/
protected $invokableClasses = array(
'alnum' => 'Zend\I18n\Filter\Alnum',
'alpha' => 'Zend\I18n\Filter\Alpha',
'basename' => 'Zend\Filter\BaseName',
'boolean' => 'Zend\Filter\Boolean',
'callback' => 'Zend\Filter\Callback',
'compress' => 'Zend\Filter\Compress',
'compressbz2' => 'Zend\Filter\Compress\Bz2',
'compressgz' => 'Zend\Filter\Compress\Gz',
'compresslzf' => 'Zend\Filter\Compress\Lzf',
'compressrar' => 'Zend\Filter\Compress\Rar',
'compresssnappy' => 'Zend\Filter\Compress\Snappy',
'compresstar' => 'Zend\Filter\Compress\Tar',
'compresszip' => 'Zend\Filter\Compress\Zip',
'datetimeformatter' => 'Zend\Filter\DateTimeFormatter',
'decompress' => 'Zend\Filter\Decompress',
'decrypt' => 'Zend\Filter\Decrypt',
'digits' => 'Zend\Filter\Digits',
'dir' => 'Zend\Filter\Dir',
'encrypt' => 'Zend\Filter\Encrypt',
'encryptblockcipher' => 'Zend\Filter\Encrypt\BlockCipher',
'encryptopenssl' => 'Zend\Filter\Encrypt\Openssl',
'filedecrypt' => 'Zend\Filter\File\Decrypt',
'fileencrypt' => 'Zend\Filter\File\Encrypt',
'filelowercase' => 'Zend\Filter\File\LowerCase',
'filerename' => 'Zend\Filter\File\Rename',
'filerenameupload' => 'Zend\Filter\File\RenameUpload',
'fileuppercase' => 'Zend\Filter\File\UpperCase',
'htmlentities' => 'Zend\Filter\HtmlEntities',
'inflector' => 'Zend\Filter\Inflector',
'int' => 'Zend\Filter\Int',
'null' => 'Zend\Filter\Null',
'numberformat' => 'Zend\I18n\Filter\NumberFormat',
'numberparse' => 'Zend\I18n\Filter\NumberParse',
'pregreplace' => 'Zend\Filter\PregReplace',
'realpath' => 'Zend\Filter\RealPath',
'stringtolower' => 'Zend\Filter\StringToLower',
'stringtoupper' => 'Zend\Filter\StringToUpper',
'stringtrim' => 'Zend\Filter\StringTrim',
'stripnewlines' => 'Zend\Filter\StripNewlines',
'striptags' => 'Zend\Filter\StripTags',
'urinormalize' => 'Zend\Filter\UriNormalize',
'wordcamelcasetodash' => 'Zend\Filter\Word\CamelCaseToDash',
'wordcamelcasetoseparator' => 'Zend\Filter\Word\CamelCaseToSeparator',
'wordcamelcasetounderscore' => 'Zend\Filter\Word\CamelCaseToUnderscore',
'worddashtocamelcase' => 'Zend\Filter\Word\DashToCamelCase',
'worddashtoseparator' => 'Zend\Filter\Word\DashToSeparator',
'worddashtounderscore' => 'Zend\Filter\Word\DashToUnderscore',
'wordseparatortocamelcase' => 'Zend\Filter\Word\SeparatorToCamelCase',
'wordseparatortodash' => 'Zend\Filter\Word\SeparatorToDash',
'wordseparatortoseparator' => 'Zend\Filter\Word\SeparatorToSeparator',
'wordunderscoretocamelcase' => 'Zend\Filter\Word\UnderscoreToCamelCase',
'wordunderscoretodash' => 'Zend\Filter\Word\UnderscoreToDash',
'wordunderscoretoseparator' => 'Zend\Filter\Word\UnderscoreToSeparator',
'alnum' => 'Zend\I18n\Filter\Alnum',
'alpha' => 'Zend\I18n\Filter\Alpha',
'basename' => 'Zend\Filter\BaseName',
'boolean' => 'Zend\Filter\Boolean',
'callback' => 'Zend\Filter\Callback',
'compress' => 'Zend\Filter\Compress',
'compressbz2' => 'Zend\Filter\Compress\Bz2',
'compressgz' => 'Zend\Filter\Compress\Gz',
'compresslzf' => 'Zend\Filter\Compress\Lzf',
'compressrar' => 'Zend\Filter\Compress\Rar',
'compresssnappy' => 'Zend\Filter\Compress\Snappy',
'compresstar' => 'Zend\Filter\Compress\Tar',
'compresszip' => 'Zend\Filter\Compress\Zip',
'datetimeformatter' => 'Zend\Filter\DateTimeFormatter',
'decompress' => 'Zend\Filter\Decompress',
'decrypt' => 'Zend\Filter\Decrypt',
'digits' => 'Zend\Filter\Digits',
'dir' => 'Zend\Filter\Dir',
'encrypt' => 'Zend\Filter\Encrypt',
'encryptblockcipher' => 'Zend\Filter\Encrypt\BlockCipher',
'encryptopenssl' => 'Zend\Filter\Encrypt\Openssl',
'filedecrypt' => 'Zend\Filter\File\Decrypt',
'fileencrypt' => 'Zend\Filter\File\Encrypt',
'filelowercase' => 'Zend\Filter\File\LowerCase',
'filerename' => 'Zend\Filter\File\Rename',
'filerenameupload' => 'Zend\Filter\File\RenameUpload',
'fileuppercase' => 'Zend\Filter\File\UpperCase',
'htmlentities' => 'Zend\Filter\HtmlEntities',
'inflector' => 'Zend\Filter\Inflector',
'int' => 'Zend\Filter\Int',
'null' => 'Zend\Filter\Null',
'numberformat' => 'Zend\I18n\Filter\NumberFormat',
'numberparse' => 'Zend\I18n\Filter\NumberParse',
'pregreplace' => 'Zend\Filter\PregReplace',
'realpath' => 'Zend\Filter\RealPath',
'stringtolower' => 'Zend\Filter\StringToLower',
'stringtoupper' => 'Zend\Filter\StringToUpper',
'stringtrim' => 'Zend\Filter\StringTrim',
'stripnewlines' => 'Zend\Filter\StripNewlines',
'striptags' => 'Zend\Filter\StripTags',
'urinormalize' => 'Zend\Filter\UriNormalize',
'wordcamelcasetodash' => 'Zend\Filter\Word\CamelCaseToDash',
'wordcamelcasetoseparator' => 'Zend\Filter\Word\CamelCaseToSeparator',
'wordcamelcasetounderscore' => 'Zend\Filter\Word\CamelCaseToUnderscore',
'worddashtocamelcase' => 'Zend\Filter\Word\DashToCamelCase',
'worddashtoseparator' => 'Zend\Filter\Word\DashToSeparator',
'worddashtounderscore' => 'Zend\Filter\Word\DashToUnderscore',
'wordseparatortocamelcase' => 'Zend\Filter\Word\SeparatorToCamelCase',
'wordseparatortodash' => 'Zend\Filter\Word\SeparatorToDash',
'wordunderscoretocamelcase' => 'Zend\Filter\Word\UnderscoreToCamelCase',
'wordunderscoretostudlycase' => 'Zend\Filter\Word\UnderscoreToStudlyCase',
'wordunderscoretodash' => 'Zend\Filter\Word\UnderscoreToDash',
'wordunderscoretoseparator' => 'Zend\Filter\Word\UnderscoreToSeparator',
);

/**
Expand Down
53 changes: 53 additions & 0 deletions src/Word/Service/SeparatorToSeparatorFactory.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?php

namespace Zend\Filter\Word\Service;

use Zend\Filter\Word\SeparatorToSeparator;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\MutableCreationOptionsInterface;
use Zend\ServiceManager\ServiceLocatorInterface;

class SeparatorToSeparatorFactory implements
FactoryInterface,
MutableCreationOptionsInterface
{
/**
* @var array
*/
protected $creationOptions = array();

/**
* Set creation options
*
* @param array $creationOptions
* @return void
*/
public function setCreationOptions(array $creationOptions)
{
$this->creationOptions = $creationOptions;
}

/**
* Get creation options
*
* @return array
*/
public function getCreationOptions()
{
return $this->creationOptions;
}

/**
* {@inheritDoc}
*
* @return SeparatorToSeparator
* @throws ServiceNotCreatedException if Controllermanager service is not found in application service locator
*/
public function createService(ServiceLocatorInterface $plugins)
{
return new SeparatorToSeparator(
isset($this->creationOptions['search_separator']) ? $this->creationOptions['search_separator'] : ' ',
isset($this->creationOptions['replacement_separator']) ? $this->creationOptions['replacement_separator'] : '-'
);
}
}
40 changes: 40 additions & 0 deletions test/FilterPluginManagerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,44 @@ public function testLoadingInvalidFilterRaisesException()
$this->setExpectedException('Zend\Filter\Exception\RuntimeException');
$this->filters->get('test');
}

/**
* @group 7169
*/
public function testFilterSuccessfullyConstructed()
{
$search_separator = ';';
$replacement_separator = '|';
$options = array(
'search_separator' => $search_separator,
'replacement_separator' => $replacement_separator,
);
$filter = $this->filters->get('wordseparatortoseparator', $options);
$this->assertInstanceOf('Zend\Filter\Word\SeparatorToSeparator', $filter);
$this->assertEquals(';', $filter->getSearchSeparator());
$this->assertEquals('|', $filter->getReplacementSeparator());
}

/**
* @group 7169
*/
public function testFiltersConstructedAreDifferent()
{
$filterOne = $this->filters->get(
'wordseparatortoseparator',
array(
'search_separator' => ';',
'replacement_separator' => '|',
)
);
$filterTwo = $this->filters->get(
'wordseparatortoseparator',
array(
'search_separator' => '.',
'replacement_separator' => ',',
)
);

$this->assertNotEquals($filterOne, $filterTwo);
}
}

0 comments on commit 5b271b3

Please sign in to comment.