1 | <?php |
||
6 | class PHPConstantsOutputAdapter implements OutputAdapterInterface |
||
7 | { |
||
8 | 1 | public static function getName() |
|
9 | { |
||
10 | 1 | return 'php-constants'; |
|
11 | } |
||
12 | |||
13 | 2 | public function process($parameters, $fileName, $env, $date) |
|
14 | { |
||
15 | 2 | $content = sprintf("<?php\n/** This file is auto-generated during the build process of '%s' environment at %s **/\n", $env, date(DATE_ATOM, $date)); |
|
16 | 2 | foreach ($parameters as $key => $value) { |
|
17 | 2 | $content .= sprintf("define('%s', %s);\n", $key, $this->serialize($value)); |
|
18 | 2 | }; |
|
19 | 2 | file_put_contents($fileName, $content); |
|
20 | 2 | } |
|
21 | |||
22 | /** |
||
23 | * @param $value |
||
24 | * @return string |
||
25 | */ |
||
26 | 2 | protected function serialize($value) |
|
27 | { |
||
28 | 2 | switch (gettype($value)) { |
|
29 | 2 | case 'boolean': |
|
30 | 1 | return $value ? 'true' : 'false'; |
|
31 | 2 | case 'array': |
|
32 | 2 | case 'object': |
|
33 | 1 | return "'" . $this->addSlashes(serialize($value)) . "'"; |
|
34 | 2 | case 'NULL': |
|
35 | 1 | return "null"; |
|
36 | 1 | case 'integer': |
|
37 | 1 | case 'double': |
|
38 | 1 | return $value; |
|
39 | default: |
||
40 | return "'" . $this->addSlashes($value) . "'"; |
||
41 | } |
||
42 | } |
||
43 | |||
44 | 1 | private function addSlashes($value) |
|
48 | |||
49 | } |