namespace Symfony\Component\Translation\Dumper;
use Symfony\Component\Translation\MessageCatalogue;
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Component\Translation\Exception\RuntimeException;
/**
* FileDumper is an implementation of DumperInterface that dump a message catalogue to file(s).
public function dump(MessageCatalogue $messages, $options = array())
{
if (!array_key_exists('path', $options)) {
- throw new \InvalidArgumentException('The file dumper needs a path option.');
+ throw new InvalidArgumentException('The file dumper needs a path option.');
}
// save a file for each domain
$fullpath = $options['path'].'/'.$this->getRelativePath($domain, $messages->getLocale());
if (file_exists($fullpath)) {
if ($this->backup) {
+ @trigger_error('Creating a backup while dumping a message catalogue is deprecated since version 3.1 and will be removed in 4.0. Use TranslationWriter::disableBackup() to disable the backup.', E_USER_DEPRECATED);
copy($fullpath, $fullpath.'~');
}
} else {
$directory = dirname($fullpath);
if (!file_exists($directory) && !@mkdir($directory, 0777, true)) {
- throw new \RuntimeException(sprintf('Unable to create directory "%s".', $directory));
+ throw new RuntimeException(sprintf('Unable to create directory "%s".', $directory));
}
}
// save file
/**
* Transforms a domain of a message catalogue to its string representation.
*
- * Override this function in child class if $options is used for message formatting.
- *
* @param MessageCatalogue $messages
* @param string $domain
* @param array $options
*
* @return string representation
*/
- public function formatCatalogue(MessageCatalogue $messages, $domain, array $options = array())
- {
- @trigger_error('The '.__METHOD__.' method will replace the format method in 3.0. You should overwrite it instead of overwriting format instead.', E_USER_DEPRECATED);
-
- return $this->format($messages, $domain);
- }
-
- /**
- * Transforms a domain of a message catalogue to its string representation.
- *
- * @param MessageCatalogue $messages
- * @param string $domain
- *
- * @return string representation
- *
- * @deprecated since version 2.8, to be removed in 3.0. Overwrite formatCatalogue() instead.
- */
- protected function format(MessageCatalogue $messages, $domain)
- {
- throw new \LogicException('The "FileDumper::format" method needs to be overwritten, you should implement either "format" or "formatCatalogue".');
- }
+ abstract public function formatCatalogue(MessageCatalogue $messages, $domain, array $options = array());
/**
* Gets the file extension of the dumper.