' . json_last_error_msg() .''; if ($errorCode === JSON_ERROR_SYNTAX) { $error .= '
'; $error .= 'Please check your JSON syntax (without PHP comment tags) using a JSON lint tool such as '; $error .= 'jsonlint.com.'; } throw new \Exception($error); } return $data; } /** * @inheritdoc */ public function write($filepath, $conf) { // JSON_PRETTY_PRINT is available from PHP 5.4. $print = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 0; $data = self::getPhpHeaders() . json_encode($conf, $print) . self::getPhpSuffix(); if (!file_put_contents($filepath, $data)) { throw new \Shaarli\Exceptions\IOException( $filepath, t('Shaarli could not create the config file. '. 'Please make sure Shaarli has the right to write in the folder is it installed in.') ); } } /** * @inheritdoc */ public function getExtension() { return '.json.php'; } /** * The JSON data is wrapped in a PHP file for security purpose. * This way, even if the file is accessible, credentials and configuration won't be exposed. * * Note: this isn't a static field because concatenation isn't supported in field declaration before PHP 5.6. * * @return string PHP start tag and comment tag. */ public static function getPhpHeaders() { return ''; } }