Хотя это не отвечает на вопрос в вашем заголовке, оно позволит вам получить CSS из сгенерированных файлов веб-пакета для включения в вашу электронную почту.
Webpack Encore создает файл в вашей сборкепапка с именем "entrypoints.js".Вы захотите получить и проанализировать этот файл, используя $decodedFile = json_decode(file_get_contents('your/build/folder/entrypoints.json'));
.
Затем вы можете просмотреть содержимое этого файла как объект.Путь к файлу, который вы хотите, будет примерно таким, как $decodedFile->entrypoints->email->css
, который даст вам массив CSS-файлов для этой записи (может быть более одного файла, например, если у вас есть метод .splitEntryChunks()
в вашем веб-пакете.файл config.js.
После того, как вы получите это, вам нужно будет сделать file_get_contents($yourCssFile)
для каждого файла в этом массиве, чтобы получить CSS из каждого файла. Имейте в виду, что пути в этомфайл - это пути, доступные через Интернет, а не локальные пути, поэтому вам, возможно, придется манипулировать ими.
Конечно, вы можете делать все это только в PHP, поэтому вам нужно создать расширение Twig, чтобыиспользовать его в своем шаблоне.
Я удивлен, что в Symfony нет лучшего способа сделать это - я бы хотел узнать один из них, если он есть.
Полныйкод (для использования в методе расширения Twig https://symfony.com/doc/current/templating/twig_extension.html, или просто введите $css
в шаблон):
$files = json_decode(file_get_contents('your/build/folder/entrypoints.json'))
->entrypoints
->email
->css
;
$css = '';
foreach ($files as $file) {
$css .= file_get_contents('your/build/folder/') . basename($file));
}