问题标签 [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.
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
文件。现在我得到
symfony - 将自定义逻辑添加到内部 Symfony 类,如 SwitchUserListener 或 TemplateGuesser
我在向一些 Symfony 类添加自定义逻辑时遇到了问题。
切换用户监听器
我想添加一个检查,即用户不能切换到比初始用户拥有更多权限/角色的另一个用户。
第一次尝试
用密钥覆盖中的参数security_listeners.xml
:
security.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
但这没有用。
symfony-2.3 - 为什么 crud 生成包在 symfony2.3 框架中出现错误?
我已将 symfony2.2 升级到 2.3。
之后,我尝试使用控制台命令“generate:doctrine:crud”为实体类生成 crud,但我抛出了类似的错误。
在升级 symfony2.2 之前它工作正常。我无法弄清楚错误是什么。
请帮我解决这个问题。
elasticsearch - 使用 FriendsOfSymfony / FOSElasticaBundle 实现弹性搜索时自动映射实体
将 FriendsOfSymfony / FOSElasticaBundle 与 Symfony 2 一起使用,我需要知道是否有任何方法可以通过索引自动映射所有实体。或者手动输入是我可以映射实体以实现 Elastica 搜索的唯一方法。
谢谢
symfony-2.3 - 在 Symfony 2.3 中创建自定义防火墙
使用WSSE创建自定义防火墙 很好。但是现在我想创建自定义防火墙,它不包含类似的authenticate(TokenInterface $token)
方法,但包含包含验证和授权逻辑的自定义方法。如果我们使用方法的WSSE
实现authenticate(TokenInterface $token)
是必要的,因为类实现了AuthenticationProviderInterface
接口。有什么建议吗?
symfony-2.3 - Symfony2 $request->query->get() 返回空值
我是 Symfony2 的新手。我正在理解这个框架。我尝试使用 Symfony2 访问我的请求的获取参数。但是当我访问它们时它返回 null
我的控制器代码是
我的路由文件如下:
当我运行 URL
我得到了对应于 echo 语句“ echo $request->getMethod(); ”的方法名称“GET”。
但是我得到了 echo 语句 echo $name 的 null/"" 空白值。"---";
我不知道我错在哪里了。请帮助我。在此先感谢。
authentication - symfony2 中的多个防火墙和提供程序
我正在开发简单的应用程序来处理两种用户的身份验证,用户和管理员实体。我想为此拥有两个单独的防火墙和提供程序,因此我的 security.yml 文件如下所示:
我的路由:
问题很奇怪。使用此配置,当我使用 /admin/login url 打开浏览器时,它会向我显示登录表单,当我使用正确的凭据提交表单时,它会给我以下异常:
但我的 Admin 实体如下所示:
paginator - Knp Paginator 不适用于 Query
我正在设置 knp 分页器,我的作曲家设置为 "knplabs/knp-paginator-bundle": "2.3.*" 但是它不适用于 Query 对象。
这是我的查询:
我如何在我的行动中称呼它:
它根本不显示结果,但是如果我把 $query->execute() 它工作。怎么了?
symfony-2.3 - 我应该在哪里找到在我的控制器中使用的 symfony2.3 中的独立 php 文件?
我是 symfony 2.3 的新手,我在从控制器运行独立的 php 文件时遇到问题。我想从 shell_exec() 运行该文件并在我的代码中使用它的输出。但我不知道在哪里找到我想要运行的文件的正确方法。我的控制器代码如下
我已将包含“data.php”的“script/”文件夹复制到“my/apiBundle/Resources/public/”,但我无法访问它。我尝试在“my/apiBundle/”中独立复制它,但仍然没有成功。
我不知道我应该找到它。请帮我解决这个问题。提前致谢..
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。不要关注正则表达式,我知道它可以更好。现在只是为了测试。