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