Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
compileString example
$nodes
[
'options'
]
=
$options
;
}
parent::
__construct
(
$nodes
,
[
]
,
$lineno
,
$tag
)
;
}
/** * {@inheritdoc} */
public
function
compile
(
Compiler
$compiler
)
{
$compiler
->
addDebugInfo
(
$this
)
;
[
$singular
,
$tokens
]
=
$this
->
compileString
(
$this
->
getNode
(
'body'
)
)
;
$plural
= NULL;
if
(
$this
->
hasNode
(
'plural'
)
)
{
[
$plural
,
$pluralTokens
]
=
$this
->
compileString
(
$this
->
getNode
(
'plural'
)
)
;
$tokens
=
array_merge
(
$tokens
,
$pluralTokens
)
;
}
// Start writing with the function to be called.
$compiler
->
write
(
'echo ' .
(
empty
(
$plural
)
? 't' : '\Drupal::translation()->formatPlural'
)
. '('
)
;
// Move the count to the beginning of the parameters list.
/** * @internal * * @covers \Shopware\Storefront\Theme\ScssPhpCompiler */
class
ScssPhpCompilerTest
extends
TestCase
{
public
function
testCompilesEmptyConfig
(
)
: void
{
$scssCompiler
=
new
ScssPhpCompiler
(
)
;
$compiled
=
$scssCompiler
->
compileString
(
new
CompilerConfiguration
(
[
]
)
,
'$background: #123456; background-color: $background;'
)
;
static
::
assertEquals
(
'background-color: #123456; ',
preg_replace
(
'/\r?\n$/', ' ',
$compiled
)
,
$compiled
)
;
}
public
function
testCompilesWithConfig
(
)
: void
{
$scssCompiler
=
new
ScssPhpCompiler
(
)
;
$importPaths
[
]
=
$resolveImportPath
;
$compilerConfig
=
new
CompilerConfiguration
(
[
'importPaths' =>
$importPaths
,
'outputStyle' =>
$this
->debug ? OutputStyle::EXPANDED : OutputStyle::COMPRESSED,
]
)
;
$cssOutput
=
$this
->scssCompiler->
compileString
(
$compilerConfig
,
$features
.
$variables
.
$concatenatedStyles
)
;
}
catch
(
\Throwable
$exception
)
{
throw
new
ThemeCompileException
(
$configuration
->
getTechnicalName
(
)
,
$exception
->
getMessage
(
)
,
$exception
)
;
}
public
function
loadValues
(
Enlight_Components_Mail
$mail
, Mail
$mailModel
,
$overrideConfig
=
[
]
)
{
$stringCompiler
=
$this
->
getStringCompiler
(
)
;
$subject
=
$stringCompiler
->
compileString
(
$mailModel
->
getSubject
(
)
)
;
if
(
!
empty
(
$subject
)
)
{
$mail
->
setSubject
(
$subject
)
;
}
if
(
!
empty
(
$overrideConfig
[
'fromMail'
]
)
)
{
$fromMail
=
$overrideConfig
[
'fromMail'
]
;
}
else
{
$fromMail
=
$stringCompiler
->
compileString
(
$mailModel
->
getFromMail
(
)
)
;
}
if
(
!
empty
(
$overrideConfig
[
'fromName'
]
)
)
{
if
(
$outputStyle
=== OutputStyle::COMPRESSED ||
$outputStyle
=== OutputStyle::EXPANDED
)
{
$this
->compiler->
setOutputStyle
(
$outputStyle
)
;
}
$importPaths
=
$config
->
getValue
(
'importPaths'
)
;
if
(
$importPaths
!== null
)
{
$this
->compiler->
setImportPaths
(
$importPaths
)
;
}
$css
=
$this
->compiler->
compileString
(
$scss
,
$path
)
->
getCss
(
)
;
$this
->
reset
(
)
; // Reset compiler for multiple usage
return
$css
;
}
}
$content
=
preg_replace
(
'`<br(?: /)?>([\\n\\r])`', '$1',
$params
[
'content'
]
)
;
$compiler
=
new
Shopware_Components_StringCompiler
(
$this
->
View
(
)
->
Engine
(
)
)
;
$defaultContext
=
[
'sConfig' =>
Shopware
(
)
->
Config
(
)
,
]
;
$compiler
->
setContext
(
$defaultContext
)
;
// Send eMail to customer
$mail
->
IsHTML
(
false
)
;
$mail
->From =
$compiler
->
compileString
(
$fromMail
)
;
$mail
->FromName =
$compiler
->
compileString
(
$fromName
)
;
$mail
->Subject =
$compiler
->
compileString
(
$subject
)
;
$mail
->Body =
$compiler
->
compileString
(
$content
)
;
$mail
->
clearRecipients
(
)
;
$mail
->
addTo
(
$toMail
)
;
if
(
!
$mail
->
send
(
)
)
{
$this
->
View
(
)
->
assign
(
[
'success' => false, 'message' => 'The mail could not be sent.'
]
)
;
return
;
}
$this
->
View
(
)
->
assign
(
[
'success' => false, 'message' => 'Value not found'
]
)
;
}
$compiler
=
new
Shopware_Components_StringCompiler
(
$this
->
View
(
)
->
Engine
(
)
)
;
$shop
=
$this
->
get
(
'models'
)
->
getRepository
(
Shop::
class
)
->
getActiveDefault
(
)
;
$this
->
get
(
ShopRegistrationServiceInterface::
class
)
->
registerShop
(
$shop
)
;
$compiler
->
setContext
(
array_merge
(
$this
->
getDefaultMailContext
(
$shop
)
,
$mail
->
getContext
(
)
)
)
;
try
{
$template
=
$compiler
->
compileString
(
$value
)
;
}
catch
(
Enlight_Exception
$e
)
{
$this
->
View
(
)
->
assign
(
[
'success' => false, 'message' =>
$e
->
getMessage
(
)
]
)
;
return
;
}
$this
->
View
(
)
->
assign
(
[
'success' => true, 'message' =>
$template
]
)
;
}
/** * Adds a attachment to given mail */
public
function
compile
(
Compiler
$compiler
)
: void
{
$compiler
->
addDebugInfo
(
$this
)
;
$defaults
=
new
ArrayExpression
(
[
]
, -1
)
;
if
(
$this
->
hasNode
(
'vars'
)
&&
(
$vars
=
$this
->
getNode
(
'vars'
)
)
instanceof ArrayExpression
)
{
$defaults
=
$this
->
getNode
(
'vars'
)
;
$vars
= null;
}
[
$msg
,
$defaults
]
=
$this
->
compileString
(
$this
->
getNode
(
'body'
)
,
$defaults
,
(bool)
$vars
)
;
$compiler
->
write
(
'echo $this->env->getExtension(\'Symfony\Bridge\Twig\Extension\TranslationExtension\')->trans('
)
->
subcompile
(
$msg
)
;
$compiler
->
raw
(
', '
)
;
if
(
null !==
$vars
)
{
$compiler
->
raw
(
'array_merge('
)