Содержание


Processor


Processor, Constant, Filter, Queue, Token, Translator, ЗФ2, Zend Framework 2, ZF2



Zend\Config\Processor дает возможность выполнять несколько дополнительных операций над объектом Zend\Config\Config. Zend\Config\Processor является интерфейсом, который предоставляет два метода process() и processValue(). Существует пять конкретных реализаций этого интерфейса:

 - Zend\Config\Processor\Constant: управления значениями PHP констант.

 - Zend\Config\Processor\Filter: фильтрация конфигурационных данных с помощью Zend\Filter.

 - Zend\Config\Processor\Queue: управление очередью операций, применяемых к конфигурационным данным.

 - Zend\Config\Processor\Token: находит и заменяет заданные маркеры.

 - Zend\Config\Processor\Translator: перевод конфигурационных значений используя Zend\I18n\Translator.

 

Далее будут представлены примеры для каждого из процессов.

 

Zend\Config\Processor\Constant

 

Пример базового использования Zend\Config\Processor\Constant :

define ('TEST_CONST', 'bar');
// set true to ZendConfigConfig to allow modifications
$config = new Zend\Config\Config(array('foo' => 'TEST_CONST'), true);
$processor = new Zend\Config\Processor\Constant();
 
echo $config->foo . ',';
$processor->process($config);
echo $config->foo;

Этот пример возвращает: TEST_CONST, bar..

 

Zend\Config\Processor\Filter



 

Пример базового использования Zend\Config\Processor\ Filter:

use Zend\Filter\StringToUpper;
use Zend\Config\Processor\Filter as FilterProcessor;
use Zend\Config\Config;
 
$config = new Config(array ('foo' => 'bar'), true);
$upper = new StringToUpper();
 
$upperProcessor = new FilterProcessor($upper);
 
echo $config->foo . ',';
$upperProcessor->process($config);
echo $config->foo;

Этот пример возвращает: bar,BAR.

 

Zend\Config\Processor\Queue

 

Пример базового использования Zend\Config\Processor\ Queue:

use Zend\Filter\StringToLower;
use Zend\Filter\StringToUpper;
use Zend\Config\Processor\Filter as FilterProcessor;
use Zend\Config\Processor\Queue;
use Zend\Config\Config;
 
$config = new Config(array ('foo' => 'bar'), true);
$upper  = new StringToUpper();
$lower  = new StringToLower();
 
$lowerProcessor = new FilterProcessor($lower);
$upperProcessor = new FilterProcessor($upper);
 
$queue = new Queue();
$queue->insert($upperProcessor);
$queue->insert($lowerProcessor);
$queue->process($config);
 
echo $config->foo;

Этот пример возвращает: bar. Фильтры, которые были применены используют логику FIFO (First In, First Out).

 

Zend\Config\Processor\Token



 

Пример базового использования Zend\Config\Processor\ Token:

// set the Config to true to allow modifications
$config = new Config(array('foo' => 'Value is TOKEN'), true);
$processor = new TokenProcessor();
 
$processor->addToken('TOKEN', 'bar');
echo $config->foo . ',';
$processor->process($config);
echo $config->foo;

Этот пример возвращает: Value is TOKEN,Value is bar.

 

Zend\Config\Processor\Translator



 

Пример базового использования Zend\Config\Processor\ Translator:

use Zend\Config\Config;
use Zend\Config\Processor\Translator as TranslatorProcessor;
use Zend\I18n\Translator\Translator;
 
$config = new Config(array('animal' => 'dog'), true);
 
/*
 * The following mapping would exist for the translation
 * loader you provide to the translator instance
 * $italian = array(
 *     'dog' => 'cane'
 * );
 */
 
$translator = new Translator();
// ... configure the translator ...
$processor = new TranslatorProcessor($translator);
 
echo "English: {$config->animal}, ";
$processor->process($config);
echo "Italian: {$config->animal}";

Этот пример возвращает:English: dog, Italian: cane.


Автор статьи: DuB