1 <?php
2 3 4
5 namespace Team3\PayU\SignatureCalculator\Encoder;
6
7 use Psr\Log\LoggerInterface;
8 use Team3\PayU\SignatureCalculator\Encoder\Strategy\EncoderStrategyInterface;
9 use Team3\PayU\SignatureCalculator\Encoder\Strategy\Md5Strategy;
10 use Team3\PayU\SignatureCalculator\Encoder\Strategy\Sha1Strategy;
11 use Team3\PayU\SignatureCalculator\Encoder\Strategy\Sha256Strategy;
12
13 class EncoderFactory implements EncoderFactoryInterface
14 {
15 16 17 18 19
20 public function build(LoggerInterface $logger)
21 {
22 $encoder = new Encoder($logger);
23 foreach ($this->getStrategies() as $strategy) {
24 $encoder->addStrategy($strategy);
25 }
26
27 return $encoder;
28 }
29
30 31 32
33 public function getStrategies()
34 {
35 return [
36 new Md5Strategy(),
37 new Sha1Strategy(),
38 new Sha256Strategy()
39 ];
40 }
41 }
42