如何在 Symfony 中注册表达式语言

Iag*_*ago 5 php symfony

我已经创建了一个具有安全功能的提供者。按照文档,我创建了自己的 ExpressionLanguage 类并注册了提供程序。

namespace AppBundle\ExpressionLanguage;

use Symfony\Component\ExpressionLanguage\ExpressionLanguage as BaseExpressionLanguage;
use Symfony\Component\ExpressionLanguage\ParserCache\ParserCacheInterface;

class ExpressionLanguage extends BaseExpressionLanguage
{
    public function __construct(ParserCacheInterface $parser = null, array $providers = array())
    {
        // prepend the default provider to let users override it easily
        array_unshift($providers, new AppExpressionLanguageProvider());

        parent::__construct($parser, $providers);
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用的是相同的功能,lowercase那就是在doc。但是现在,我不知道如何注册要在我的 Symfony 项目中加载的 ExpressionLanguage 类。

每次尝试使用注释中的自定义函数加载页面时,我都会收到此错误:

位置 26 附近不存在函数“小写”。

我正在使用 Symfony 2.7.5。

Wou*_*r J 2

我假设您想使用您的自定义函数安全表达式?在这种情况下,将您创建的表达式语言提供程序注册为服务并使用以下标记security.expression_language_provider

services:
    app.security_expression_language_provider:
        class: AppBundle\ExpressionLanguage\AppExpressionLanguageProvider
        tags:
            - { name: security.expression_language_provider }
Run Code Online (Sandbox Code Playgroud)