问题标签 [symfony-components]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Symfony2 - 抛出 AccessDeniedHttpException 不起作用编辑:安全
当某处被抛出时,我想消除重定向的不良影响AccesDeniedException
。我的意思是如果用户未通过身份验证,则重定向到“登录”页面。
我创建了kernel.exception
监听器
此侦听器以正确的顺序正常工作,但所有时间防火墙都将我重定向到登录页面。 Symfony 文档说:
异常监听器
如果任何侦听器抛出 AuthenticationException,则在将安全区域添加到防火墙映射时提供的异常侦听器将跳入。
异常侦听器根据创建时收到的参数确定接下来会发生什么。它可能会启动身份验证过程,可能会要求用户再次提供他们的凭据(当他们仅基于“记住我”cookie 进行身份验证时),或者将异常转换为 AccessDeniedHttpException,最终将导致“HTTP /1.1 403:拒绝访问”响应。
我明白 - 如果我抛出AccessDeniedHttpException
我应该得到即时 403 而不是重定向,我正确吗?
第二——我挖symfony和ExceptionListener有同样的伎俩?我认为...
此外 symfony 调试器在 auth 之后显示 2 个异常。(正如它应该):
第一AccessDeniedException
和第二AccessDeniedHttpException
。
我该如何解决我的问题?如何抛出即时 403 错误?
编辑
我发现问题出在哪里。防火墙ExceptionListener
使用循环检查所有先前的异常:
我可以将我的听众更改为:
新问题是 - 它会导致任何安全问题吗? 我认为这是一个好方法。
php - 不允许使用 Symfony 的 optionsResolver 更改默认选项
我正在使用 symfony 的optionsResolver组件
我有以下代码:
我想做的是,如果有人调用test
函数以抛出异常,如果他通过 key 传递选项query
但允许他传递选项connect_timeout
或form_params
.
这可能吗?
php - 覆盖/更新 php 文件中的变量/数组
在我最近的项目中,处理控制台命令,我需要根据 linux 标准约定执行/运行 json 中提到的各种操作
并且 param 模式与 linux 约定几乎完全相同。
当前设置(Mkdir,触摸)
Json 模式(数组)
它遍历所有动作并解析每个what
类型(mkdir,touch)的动作类,例如MkdirOperation
分别用于mkdir和调用句柄函数。
要求:
所以,基本上我想根据特定规则更新/覆盖我提到的变量/数组,为此,我尝试在 json 模式中准备规则:
我正在使用的组件
- symfony/控制台
- symfony/finder
- Symfony/文件系统
寻找:
- 建议以这种方式组织规则集模式,以迭代更新/覆盖变量或从数组中推/拉元素的所有操作并执行操作。
- 更新特定变量值的机制,以及使用 php 从数组/子数组中推/拉元素的机制。
如果我身边仍有不清楚的地方,请告诉我。提前致谢。
php - 使用 OptionsResolver 组件进行高级类型验证
我需要允许实现两个接口(Foo
和Bar
)的类型,而不是其中之一。
错误的!也允许Foz
和Baz
实例。
我需要允许类型的子类Bar
,而不是Bar
实例。
错误的!也允许Bar
实例。
我可以重新设计我的类/接口,但这不是设计问题。那么,有没有可能用这个组件来实现呢?
php - 缓存组件中的默认生命周期
我需要从缓存适配器配置默认生存期,但是发生了一些奇怪的事情,以下不起作用!?:/
参考http://symfony.com/doc/current/components/cache/cache_pools.html#filesystem-cache-adapter
第一次,缓存的文件内容显示:
当然这个项目在 5 秒后不会过期:/(我已经手动清除了缓存目录)。
另一方面,如果我们使用$latestNews->expiresAfter(5);
all 工作正常:
参考http://symfony.com/doc/current/components/cache/cache_items.html#cache-item-expiration
项目正确过期后 5 秒。
我用它进行了测试,Symfony\Component\Cache\Adapter\ApcuAdapter
也出现了同样的问题。
缓存适配器中的默认生命周期(构造函数参数)会发生什么?我在这里遗漏了一些东西:/?
php - 从 YML.dist 生成 YML 文件
我正在使用 Silex 构建自己的微框架,但我无法解决一个问题:当运行composer install命令时(如在 Symfony 中),如何从.dist 文件中自动生成parameters.yml文件?
我应该使用哪些软件包或组件?肿瘤坏死因子
php - 在一个命令中运行多个 Symfony 控制台命令
我在 Symfony 控制台应用程序中定义了两个命令,clean-redis-keys
并且clean-temp-files
. 我想定义一个clean
执行这两个命令的命令。
我该怎么做?
php - 包含带有重音符号或字符的文本的 XPath 元素选择
我想使用 XPath ( Symfony Dom Crawler ) 选择一个元素/div 标签:
$element->filterXPath('//span[text() = "SOMEtext"]')->text();
如果字符串中没有特殊字符,它工作正常。Prénom
如果字符串包含重音符号或字符,例如: 、、、等expérience
,它将不起作用à toi
。
$element->filterXPath('//span[text() = "Référence"]')->text();
给我一个错误。
有没有办法过滤掉非英文文本?
我尝试了许多组合将文本转换为 unicode 字符串,但总是失败。
php - 我的控制器中的独立 Symfony DIC
我在创建您自己的 PHP 框架之后的项目中使用 Symfony DIC、路由和 ControllerResolver
我不明白如何在不使用配置组件或在控制器中设置容器的情况下将服务正确传输到控制器的构造函数?路由:
控制器:
容器和手柄:
php - Symfony 序列化程序不适用于 --no-dev
我正在使用 symfony 序列化程序。但是如果我安装作曲家包--no-dev
标志的作曲家包,它会反序列化应该是数组数组中的对象数组的数据。
这是序列化:
对于反序列化,我在 DTO 中使用注释。
这就是“字段”在 DTO 中对象数组的外观: