Можно ли расширить Twig PHP для поддержки многострочных блоков кода? (Или лучший способ встроить собственную логику в прPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Можно ли расширить Twig PHP для поддержки многострочных блоков кода? (Или лучший способ встроить собственную логику в пр

Сообщение Anonymous »

Мы рассматриваем возможность встраивания пользовательского кода в приложение PHP и изучаем безопасные/изолированные способы сделать это (например, если вы использовали Apex в Salesforce или знакомы с ExpressionLanguage< /code> в Symfony, что-то в этом роде).
Мы ищем безопасный способ выполнения пользовательской дополнительной логики, предоставляемой пользователем
em>, но обязательно это ограничено тем, что они не могут предоставить, например. код, выполняющий опасные команды файловой системы.
Что я подразумеваю под «песочницей»?
Я хочу разрешить ненадежные, предоставляемые пользователем код для выполнения.
например. мы не можем просто позволить кому-либо выполнять произвольный код PHP, потому что у него будет доступ к файловой системе и такие функции, как exec(), file(), fopen() и т. д. и т. д.
Преимущество Twig заключается в том, что доступ, предоставляемый пользователям, крайне минимален. Нет функций, которые вы могли бы использовать, например. получить доступ к файловой системе или выполнить HTTP-вызовы.
Что мы исследуем
Одна вещь, которую мы изучаем, — это разрешение пользовательского Twig для запуска, но единственным недостатком Twig является то, что он действительно разработан как язык шаблонов, поэтому его логика довольно неуклюжа из-за всех дополнительных скобок:

Код: Выделить всё

{% if foo.bar == 'test' %}
{% for line in lines %}
{% if line.rate > 10 %}
... more code here ...
{% endif %}
{% endfor %}
{% endif %}

Было бы намного чище/проще, если бы мы могли просто написать:

Код: Выделить всё

if foo.bar == 'test'
{
for line in lines {
if line.rate > 10
{
... more code here ...
}
}
}
Возможно ли/кто-нибудь видел, чтобы Twig был расширен для поддержки нескольких строк кода и не требовал всех {% и %}?
Или, если это не удалось... видел ли кто-нибудь другой вариант безопасного внедрения ненадежной, предоставляемой пользователем логики в PHP-приложение? Мы также рассматривали расширение PHP Lua как потенциальный вариант, но я не уверен, насколько оно поддерживается...

Подробнее здесь: https://stackoverflow.com/questions/792 ... better-way
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»