如何将自己的转换器加载器/文件类型/“逻辑”添加到Symfony 3

时间:2016-12-13 13:06:34

标签: php symfony

在我的symfony项目中,我想在我的资源文件夹中添加多个邮件模板。

文件路径模式:

app/Resources/translations/emails/[LOCALE]/[mail-type].html.twig

我有我的装载机,名为MailLoader女巫装载():

public function load($resource, $locale, $domain = 'messages')
{
    $messages = [];
    $label = strstr(basename($resource), '.', true);

    $messages[$label] = file_get_contents($resource);

    $catalogue = new MessageCatalogue($locale);
    $catalogue->add($messages, $domain);

    return $catalogue;
}

我想使用$translator->trans('mail-type');来获取文件的区域设置内容的具体内容。

当我这样做时,这是有效的:

    $translator = new Translator('pl');
    $translator->addLoader('mails', new MailLoader());

    $finder = new Finder();
    $finder->files()->in(__DIR__ . '/../Resources/views/email/pl');//->name('*.html.twig');

    foreach ($finder as $file) {
        $translator->addResource('mails', $file->getPath() . '/' . $file->getFilename(), 'pl');
    }

    echo $translator->trans('order-closed');//Returns file content.

但我想在容器中扩展Symfony Translator,以便在我需要的任何地方使用它。怎么做?

拜托,我这么长时间工作。这是我对这个Symfony组件的第一次工作......这让我发疯了! >:d

0 个答案:

没有答案