Page Menu
Home
WMGMC Issues
搜索
Configure Global Search
登录
Files
F15831
SandboxTokenParser.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
订阅
标记用于日后
授予令牌
Size
1 KB
Referenced Files
None
订阅者
None
SandboxTokenParser.php
View Options
<?php
/*
* This file is part of Twig.
*
* (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace
Twig\TokenParser
;
use
Twig\Error\SyntaxError
;
use
Twig\Node\IncludeNode
;
use
Twig\Node\Node
;
use
Twig\Node\SandboxNode
;
use
Twig\Node\TextNode
;
use
Twig\Token
;
/**
* Marks a section of a template as untrusted code that must be evaluated in the sandbox mode.
*
* {% sandbox %}
* {% include 'user.html' %}
* {% endsandbox %}
*
* @see https://twig.symfony.com/doc/api.html#sandbox-extension for details
*
* @internal
*/
final
class
SandboxTokenParser
extends
AbstractTokenParser
{
public
function
parse
(
Token
$token
):
Node
{
$stream
=
$this
->
parser
->
getStream
();
$stream
->
expect
(
Token
::
BLOCK_END_TYPE
);
$body
=
$this
->
parser
->
subparse
([
$this
,
'decideBlockEnd'
],
true
);
$stream
->
expect
(
Token
::
BLOCK_END_TYPE
);
// in a sandbox tag, only include tags are allowed
if
(!
$body
instanceof
IncludeNode
)
{
foreach
(
$body
as
$node
)
{
if
(
$node
instanceof
TextNode
&&
ctype_space
(
$node
->
getAttribute
(
'data'
)))
{
continue
;
}
if
(!
$node
instanceof
IncludeNode
)
{
throw
new
SyntaxError
(
'Only "include" tags are allowed within a "sandbox" section.'
,
$node
->
getTemplateLine
(),
$stream
->
getSourceContext
());
}
}
}
return
new
SandboxNode
(
$body
,
$token
->
getLine
());
}
public
function
decideBlockEnd
(
Token
$token
):
bool
{
return
$token
->
test
(
'endsandbox'
);
}
public
function
getTag
():
string
{
return
'sandbox'
;
}
}
File Metadata
详情
附加的
Mime Type
text/x-php
Expires
9月 9 Tue, 5:41 AM (7 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5196
默认替代文本
SandboxTokenParser.php (1 KB)
Attached To
Mode
rMAILCOW mailcow-tracking
附加的
Detach File
Event Timeline
Log In to Comment