问题标签 [symfony-4.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 4.3 路由问题 - 每条路由都与 urlRedirectAction 匹配
我正在将 Symfony 从 3.4 升级到 4.3,我遇到的情况是每条路由都与控制器和方法正确匹配,但随后请求到达RedirectableCompiledUrlMatcher
并将正确的参数替换为
_controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction
这会触发各种其他事情,例如调用参数转换器、访问防火墙和其他与路由相关的事情,因为匹配的路由不正确,所以不应该这样做。
在不替换正确参数的情况下继续调试 3.4 项目。
我的问题是这现在是否是正确的请求流(即每条路由都必须通过 urlRedirectAction)并且我需要配置其他东西,或者有什么方法可以避免调用,我猜,RedirectableCompiledUrlMatcher
?
是否有可能发生这种情况,因为RedirectableUrlMatcher
它是默认匹配器\Symfony\Component\Routing\Router
,为什么它是默认匹配器?有没有机会用UrlMatcher
3.4 中的普通替换它?
正是这一行vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:63
,我$ret
正确匹配了我的控制器$this->redirect()
并被调用,它用 Symfony RedirectController 替换了我的控制器。特质是RedirectableCompiledUrlMatcher
类的一部分
php - Symfony PHPUnit 测试问题
在 Symfony 中运行 PHPUnit 测试用例时遇到以下问题。我尝试删除各种可能导致内存问题但没有运气的测试用例。是否与 PHP 版本(即 7.2.20)相关?
$ phpdbg -qrr ./bin/phpunit --coverage-text --colors=never --coverage-html $CI_PROJECT_DIR/codecoverage/ --coverage-clover $CI_PROJECT_DIR/clover.xml --log-junit $CI_PROJECT_DIR/junit. xml -c 。Sebastian Bergmann 和贡献者的 PHPUnit 7.5.12。
测试项目测试套件 F.......FF.FF。[PHP警告:未捕获的错误异常:包括(/builds/development/project/project-docs/var/cache/test/pools/yZJnsPMs0T/S/6/+yyw-9cjArnMASkmxItg):无法打开流:没有这样的文件或目录在 /builds/development/project/project-docs/vendor/symfony/cache/Traits/PhpFilesTrait.php:114 堆栈跟踪:
#0 /builds/development/project/project-docs/vendor/symfony/cache/Traits/PhpFilesTrait.php(114): Symfony\Component\Cache\Adapter\PhpFilesAdapter::Symfony\Component\Cache\Adapter{closure}( 2, 'include(/builds...', '/builds/develop...', 114, 数组)
#1 /builds/development/project/project-docs/vendor/symfony/cache/Traits/PhpFilesTrait.php(114): include()
#2 /builds/development/project/project-docs/vendor/symfony/cache/Traits/AbstractAdapterTrait.php(51): Symfony\Component\Cache\Adapter\PhpFilesAdapter->doFetch(Array)
#3 /builds/development/project/project-docs/vendor/symfony/cache/Adapter/TraceableAdapter.php(77): Symfony\Component\Cache\Adapter\AbstractAdapte 在 /builds/development/project/project-docs/vendor /symfony/cache/Traits/PhpFilesTrait.php 第 114 行] [PHP 致命错误:/builds/development/project/project-docs/vendor/symfony/cache 中的内存不足(分配 702808064)(试图分配 140362191340481 字节) /Traits/PhpFilesTrait.php 第 114 行]
我也试过composer update
php - PHPUnit 测试中 Container 的 Symfony 内存问题
我有以下测试。这导致PHP Fatal error: Out of memory (allocated 704905216) (tried to allocate 139802474386369 bytes)
错误
这里$this->client->getContainer()
似乎导致了这个问题。但我不知道如何写其他方式。如何解决这个内存问题?
symfony-4.3 - 连接到 symfony 4.3 项目中的 oracle 11g 数据库
我开始了一个 Symfony 4.3 项目,我必须为这个项目使用 Oracle 11g 数据库。但是,Symfony 的文档并没有提供足够清晰的主题,尤其是连接到 oracle 数据库的配置。我试图解决这个问题已经快 3 天了,但我什么也没找到。
错误是:
驱动程序中发生异常:SQLSTATE[HY000]: pdo_oci_handle_factory: ORA-12505: TNS:listener 目前不知道连接描述符中给出的 SID
(ext\pdo_oci\oci_driver.c:634)
php-7.2 - 如何在 symfony 4 中自动调用控制器函数
我正在尝试自动执行一项任务。这是每周自动向某些人发送电子邮件。我创建了一个 MailController,在它内部实现了一个发送电子邮件的功能。我现在要做的是让我的应用程序每周或每月自动调用该功能。
我尝试的是实现一个新命令,该命令将执行我的函数,然后制作一个脚本来重复该命令。
执行我创建的命令时,我收到以下消息:
我正在运行 symfony 4.3.2,我试图调用的控制器扩展了 AbstractController,我的 services.yaml 是默认的。我想我错过了一些配置,但我无法找出确切的配置。感谢您的帮助,如果您需要更多信息,请告诉我。
symfony - Symfony Messenger 4.3 - 从理论传输中消费消息失败(抛出异常)
Symfony 版本:4.3.2
PHP:7.2.20
我正在尝试将信使组件与学说传输异步使用。我在composer require messenger
Symfony Flex 的帮助下安装了 Messenger。
我已经MESSENGER_TRANSPORT_DSN=doctrine://default
在.env.local
. 在 messenger 配置中,传输也被配置:
在控制器中发送消息时,$this->dispatchMessage(new SomeNotification('some content'));
一切都很好。教义传输表messenger_messages
自动创建,消息正确保存在表中。
当尝试使用消息时,./bin/console messenger:consume async
我收到以下错误:
所以里面的 $routeableBusSymfony\Component\Messenger\Command\ConsumeMessagesCommand
是空的,这会导致在实例化 Worker 时崩溃。
php - Composer 无法从供应商目录中的存储库中找到类
我无法解决在我的 symfony 应用程序中加载类的问题。应用程序的核心位于单独的 gitlab 存储库中,在 composer 中作为依赖项加载。
该软件包位于:
- ProjectRoot/供应商/官员/*
composer.json
这个包位于:
- ProjectRoot/vendor/officer/officer-domain/composer.json
composer.json
内容:
尝试EventDispatcherInterface
从命名空间加载时Officer\Infrastructure\EventDispatcher
:
尝试从命名空间“Officer\Infrastructure\EventDispatcher”加载接口“EventDispatcherInterface”。
您是否忘记了“Symfony\Contracts\EventDispatcher\EventDispatcherInterface”或“Symfony\Component\EventDispatcher\EventDispatcherInterface”的“使用”语句?
EventDispatcherInterface
位于:
- ProjectRoot/vendor/officer/officer-domain/src/Infrastructure/EventDispatcher/EventDispatcherInterface.php
两天来,我没有在目录结构中看到任何拼写错误,PhpStorm 正确地看到了文件并提示它们,也许我应该在我的应用程序中的 services yaml 中定义一些东西来指向 Officer/ 命名空间,但不能这样做。
任何帮助将不胜感激,干杯:)
我查看了类似的问题,但没有找到任何答案,如果有人会指出我与问题解决者重复的问题,我会很乐意关闭这个:)
更新:我解决了这个问题。我在 App\ 命名空间中有类,它们实现了来自 Officer\ 包的接口。Symfony 无法自动装配,我不得不在 services.yaml 中为它们添加映射
谢谢大家的帮助,加油
php - 服务弃用:Symfony 要求更改服务名称
我目前第一次尝试从 Symfony 3.4 迁移到 4.3。
我正处于必须删除折旧的阶段,以便我可以通过撰写文档来更新依赖项
我已经解决了所有的弃用问题,除了一个我有一点麻烦的问题。这里是:
依赖于类型“AppBundle\Entity\AdaImporterDoc”的服务自动注册自 Symfony 3.4 以来已被弃用,并且在 4.0 中将不再支持。改为创建一个名为“AppBundle\Entity\AdaImporterDoc”的服务。
symfony-4.3 - symfony 4.3 自动验证不起作用
我已经阅读了有关新功能的信息:
symfony 4.3自动验证
https://symfony.com/blog/new-in-symfony-4-3-automatic-validation
所以 Doctrine 注释应该足够了,无需显式手动添加验证器注释(如@Assert\NotNull()
..)但是我不明白如何使它工作。我有 symfony 4.3 应用程序,当前创建实体,真的不想手动添加验证器注释,而是使用这个新的自动验证功能。我是 Symfony 的新手,请详细说明。
它应该在没有明确添加的情况下工作,
@Assert\NotNull()
但它没有