问题标签 [symfony-2.3]

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 投票
2 回答
8196 浏览

symfony - 从 symfony 2.0 升级到 2.3

我已经有正在运行的项目Symfony 2.0.10。但是现在我需要将它升级到Symfony 2.3。我知道需要更改一些代码以与最新版本兼容。有什么命令可以升级吗?或者升级的具体程序是什么?有没有可用的文件?

编辑:

我放了symfony 2.3 composer.json文件,在做的时候php composer.phar update我得到了这个错误。

编辑2: 首先我得到了这个错误:

所以我创建了parameters.yml.dist文件。现在我得到

0 投票
1 回答
774 浏览

symfony - 将自定义逻辑添加到内部 Symfony 类,如 SwitchUserListener 或 TemplateGuesser

我在向一些 Symfony 类添加自定义逻辑时遇到了问题。

切换用户监听器

我想添加一个检查,即用户不能切换到比初始用户拥有更多权限/角色的另一个用户。

第一次尝试

用密钥覆盖中的参数security_listeners.xmlsecurity.authentication.switchuser_listener.class但是我在哪里可以覆盖它呢?
在 security.yml 中它不起作用:

第二次尝试

覆盖 SwitchUserListner 服务 id 的服务:security.authentication.switchuser_listener

我在我的包的 service.xml 中创建了相同的服务,但我的类没有被使用/调用。

另一个想法是只覆盖类,但这仅适用于捆绑包,但 SwitchUserListener 不在 SecurityBundle 中,它在 symfony 组件目录中,在我看来,覆盖 SecurityBundle 是一个非常糟糕的主意

第三次尝试

现在我得到了解决方案:第一次我没有意识到调度程序调用了 SwitchUserListener 中的 SWTICH_USER 事件的侦听器:

所以我只需要为这个事件类型创建一个带有特殊标签的服务:

并在给定的方法中进行检查。

这似乎是比其他两个更好的解决方案。但是还有一个问题。在我的 SwitchUserEvent 监听器中,如果用户想要退出切换的用户,我需要忽略我的自定义检查。所以我需要检查请求的路径:ignore if path containts '?switch_user=_exit'
但是路径(URL参数)可以改变:

但是在我的包中我无法读取这个参数,因为它不会被传递给service container. 它将被传递给SwitchUserListner类的构造函数,并将作为私有属性保存在那里,永远不能从外部访问(没有反射)。(发生在这里:SecurityExtension.php第 591 行)那该怎么办?定义参数两次反对 DRY。使用反射?

另一点是我编写订阅者类的每次事件都会被触发。那么什么是另一个/最好的解决方案呢?
我问这个问题是因为我会遇到一些类似的问题,我想添加或覆盖一些 symfony 实习生组件。

模板猜测器

我想修改TemplateGuesser:对于一个特定的包,所有具有注释@Tempalte的模板都应该与控制器一起TestController#showAction位于此路径:

所以猜测者应该被放置并将所有内容定位到一个额外的文件夹customDir而不是只使用views。当使用render带有特定模板的函数时,猜测者应该忽略注释。

我创建了自己的 Guesser 并覆盖了服务 ID:sensio_framework_extra.view.guesser,与SwitchUserListener这次相比,我的课程真正被调用而不是原来的guesser。为什么它在这里有效,但不适用于SwitchUserListener?

这是一个很好的解决方案吗?我还尝试添加第二个侦听器,它调用 TemplateGuesser,它的服务sensio_framework_extra.view.listener与类Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener但这没有用。

0 投票
1 回答
1343 浏览

symfony-2.3 - 为什么 crud 生成包在 symfony2.3 框架中出现错误?

我已将 symfony2.2 升级到 2.3。

之后,我尝试使用控制台命令“generate:doctrine:crud”为实体类生成 crud,但我抛出了类似的错误。

在升级 symfony2.2 之前它工作正常。我无法弄清楚错误是什么。

请帮我解决这个问题。

0 投票
1 回答
862 浏览

elasticsearch - 使用 FriendsOfSymfony / FOSElasticaBundle 实现弹性搜索时自动映射实体

将 FriendsOfSymfony / FOSElasticaBundle 与 Symfony 2 一起使用,我需要知道是否有任何方法可以通过索引自动映射所有实体。或者手动输入是我可以映射实体以实现 Elastica 搜索的唯一方法。

谢谢

0 投票
0 回答
448 浏览

symfony-2.3 - 在 Symfony 2.3 中创建自定义防火墙

使用WSSE创建自定义防火墙 很好。但是现在我想创建自定义防火墙,它不包含类似的authenticate(TokenInterface $token)方法,但包含包含验证和授权逻辑的自定义方法。如果我们使用方法的WSSE实现authenticate(TokenInterface $token)是必要的,因为类实现了AuthenticationProviderInterface接口。有什么建议吗?

0 投票
1 回答
7153 浏览

symfony-2.3 - Symfony2 $request->query->get() 返回空值

我是 Symfony2 的新手。我正在理解这个框架。我尝试使用 Symfony2 访问我的请求的获取参数。但是当我访问它们时它返回 null

我的控制器代码是

我的路由文件如下:

当我运行 URL

我得到了对应于 echo 语句“ echo $request->getMethod(); ”的方法名称“GET”。

但是我得到了 echo 语句 echo $name 的 null/"" 空白值。"---";

我不知道我错在哪里了。请帮助我。在此先感谢。

0 投票
2 回答
2792 浏览

authentication - symfony2 中的多个防火墙和提供程序

我正在开发简单的应用程序来处理两种用户的身份验证,用户和管理员实体。我想为此拥有两个单独的防火墙和提供程序,因此我的 security.yml 文件如下所示:

我的路由:

问题很奇怪。使用此配置,当我使用 /admin/login url 打开浏览器时,它会向我显示登录表单,当我使用正确的凭据提交表单时,它会给我以下异常:

但我的 Admin 实体如下所示:

0 投票
1 回答
1555 浏览

paginator - Knp Paginator 不适用于 Query

我正在设置 knp 分页器,我的作曲家设置为 "knplabs/knp-paginator-bundle": "2.3.*" 但是它不适用于 Query 对象。

这是我的查询:

我如何在我的行动中称呼它:

它根本不显示结果,但是如果我把 $query->execute() 它工作。怎么了?

0 投票
1 回答
247 浏览

symfony-2.3 - 我应该在哪里找到在我的控制器中使用的 symfony2.3 中的独立 php 文件?

我是 symfony 2.3 的新手,我在从控制器运行独立的 php 文件时遇到问题。我想从 shell_exec() 运行该文件并在我的代码中使用它的输出。但我不知道在哪里找到我想要运行的文件的正确方法。我的控制器代码如下

我已将包含“data.php”的“script/”文件夹复制到“my/apiBundle/Resources/public/”,但我无法访问它。我尝试在“my/apiBundle/”中独立复制它,但仍然没有成功。

我不知道我应该找到它。请帮我解决这个问题。提前致谢..

0 投票
3 回答
4634 浏览

php - Symfony2 - 在自定义验证器中调用 EmailValidator

我正在创建一个自定义验证器约束来验证“联系人”,类似于“John Doe <jdoe@example.com>”。按照Cookbook我创建了约束类:

并且还创建了验证器:

关键是我试图在我的自定义验证器中使用 Symfony 的 EmailValidator 来检查电子邮件是否有效。我不想重新发明轮子并使用我自己的正则表达式验证电子邮件。

尝试验证有效联系人时一切正常,但是使用无效电子邮件(“Gabriel Garcia <infoinv4l1d3mai1.com>”)测试联系人时会出现 PHP 致命错误:

致命错误:在第 58 行的 /home/dev/myproject/vendor/symfony/symfony/src/Symfony/Component/Validator/Constraints/EmailValidator.php 中的非对象上调用成员函数 addViolation()

深入研究 EmailValidator.php 类,我意识到问题与 $context (ExecutionContext) 有关。这是 EmailValidator.php 的第 58 行:

似乎该类的上下文属性为空。有谁知道为什么?我需要在某处注射吗?

提前致谢。

PS:我使用的是 Symfony 2.3。不要关注正则表达式,我知道它可以更好。现在只是为了测试。