1 <?php
 2  3  4 
 5 namespace Team3\PayU\SignatureCalculator\Encoder\Strategy;
 6 
 7 use Team3\PayU\SignatureCalculator\Encoder\Algorithms\AlgorithmInterface;
 8 use Team3\PayU\SignatureCalculator\Encoder\Algorithms\Sha256Algorithm;
 9 use Team3\PayU\SignatureCalculator\Encoder\EncoderException;
10 
11 class Sha256Strategy implements EncoderStrategyInterface
12 {
13     14 15 16 17 
18     public function supports(AlgorithmInterface $algorithm)
19     {
20         return $algorithm instanceof Sha256Algorithm;
21     }
22 
23     24 25 26 27 28 
29     public function encode($data)
30     {
31         if (!function_exists('hash')) {
32             throw new EncoderException(
33                 'There is no hash function defined. Could not encode data.'
34             );
35         }
36 
37         return hash('sha256', $data);
38     }
39 }
40