| 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 | } |