config = $config + [ 'file_extension' => '.ini' ]; } /** * @deprecated 1.5 Use $formatter->getDefaultFileExtension() instead. */ public function getFileExtension() { return $this->getDefaultFileExtension(); } /** * {@inheritdoc} */ public function getDefaultFileExtension() { $extensions = $this->getSupportedFileExtensions(); return (string) reset($extensions); } /** * {@inheritdoc} */ public function getSupportedFileExtensions() { return (array) $this->config['file_extension']; } /** * {@inheritdoc} */ public function encode($data) { $string = ''; foreach ($data as $key => $value) { $string .= $key . '="' . preg_replace( ['/"/', '/\\\/', "/\t/", "/\n/", "/\r/"], ['\"', '\\\\', '\t', '\n', '\r'], $value ) . "\"\n"; } return $string; } /** * {@inheritdoc} */ public function decode($data) { $decoded = @parse_ini_string($data); if ($decoded === false) { throw new \RuntimeException('Decoding INI failed'); } return $decoded; } }