问题标签 [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.

0 投票
0 回答
1624 浏览

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使用循环检查所有先前的异常:

我可以将我的听众更改为:

新问题是 - 它会导致任何安全问题吗? 我认为这是一个好方法。

0 投票
0 回答
119 浏览

php - 不允许使用 Symfony 的 optionsResolver 更改默认选项

我正在使用 symfony 的optionsResolver组件

我有以下代码:

我想做的是,如果有人调用test函数以抛出异常,如果他通过 key 传递选项query但允许他传递选项connect_timeoutform_params.

这可能吗?

0 投票
0 回答
174 浏览

php - 覆盖/更新 php 文件中的变量/数组

在我最近的项目中,处理控制台命令,我需要根据 linux 标准约定执行/运行 json 中提到的各种操作

并且 param 模式与 linux 约定几乎完全相同。

当前设置(Mkdir,触摸)

Json 模式(数组)

它遍历所有动作并解析每个what类型(mkdir,touch)的动作类,例如MkdirOperation分别用于mkdir和调用句柄函数。

要求:

所以,基本上我想根据特定规则更新/覆盖我提到的变量/数组,为此,我尝试在 json 模式中准备规则:

我正在使用的组件

  • symfony/控制台
  • symfony/finder
  • Symfony/文件系统

寻找:

  • 建议以这种方式组织规则集模式,以迭代更新/覆盖变量或从数组中推/拉元素的所有操作并执行操作。
  • 更新特定变量值的机制,以及使用 php 从数组/子数组中推/拉元素的机制。

如果我身边仍有不清楚的地方,请告诉我。提前致谢。

0 投票
3 回答
1362 浏览

php - 使用 OptionsResolver 组件进行高级类型验证

我需要允许实现两个接口(FooBar)的类型,而不是其中之一。

错误的!也允许FozBaz实例。


我需要允许类型的子类Bar,而不是Bar实例。

错误的!也允许Bar实例。


我可以重新设计我的类/接口,但这不是设计问题。那么,有没有可能用这个组件来实现呢?

0 投票
1 回答
1540 浏览

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也出现了同样的问题。


缓存适配器中的默认生命周期(构造函数参数)会发生什么?我在这里遗漏了一些东西:/?

0 投票
0 回答
197 浏览

php - 从 YML.dist 生成 YML 文件

我正在使用 Silex 构建自己的微框架,但我无法解决一个问题:当运行composer install命令时(如在 Symfony 中),如何从.dist 文件中自动生成parameters.yml文件?

我应该使用哪些软件包或组件?肿瘤坏死因子

0 投票
2 回答
4490 浏览

php - 在一个命令中运行多个 Symfony 控制台命令

我在 Symfony 控制台应用程序中定义了两个命令,clean-redis-keys并且clean-temp-files. 我想定义一个clean执行这两个命令的命令。

我该怎么做?

0 投票
1 回答
530 浏览

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 字符串,但总是失败。

0 投票
1 回答
406 浏览

php - 我的控制器中的独立 Symfony DIC

我在创建您自己的 PHP 框架之后的项目中使用 Symfony DIC、路由和 ControllerResolver

我不明白如何在不使用配置组件或在控制器中设置容器的情况下将服务正确传输到控制器的构造函数?路由:

控制器:

容器和手柄:

0 投票
2 回答
355 浏览

php - Symfony 序列化程序不适用于 --no-dev

我正在使用 symfony 序列化程序。但是如果我安装作曲家包--no-dev标志的作曲家包,它会反序列化应该是数组数组中的对象数组的数据。

这是序列化:

对于反序列化,我在 DTO 中使用注释。

这就是“字段”在 DTO 中对象数组的外观: