我在 symfony 的分析器中看到以下警告:
用户已弃用:自 Symfony 4.2 起不推荐使用“checkMX”选项。
我想知道如何摆脱警告,谢谢。
我不清楚这是从哪里来的?在跟踪中,它指向我的存储库之一中的以下代码。
/**
* @return Ride[] Returns an array of Ride objects
*/
public function findRidesByYear($year)
{
return $this->createQueryBuilder('r')
->andWhere('r.date >= :year')
->setParameter('year', $year)
->orderBy('r.date', 'ASC')
->getQuery()
->getResult()
;
}
Run Code Online (Sandbox Code Playgroud)
我试图找到有关使用Symfony Flex的任何文档,但到目前为止还没有运气。
几乎所有文档都指向安装使用symfony Flex的捆绑软件,而不是如何创建使用它的捆绑软件。
我什至试图对某些软件包进行反向工程,但是再一次,没有运气。
我的目标是为中的捆绑包生成一个默认配置文件config/packages/my_bundle.yaml。
我需要知道的是我需要在哪里放置它以及可以使用哪些env变量(如果有)?
我在通过Symfony Email Constraint验证用户电子邮件地址,然后尝试通过Swiftmailer向该用户发送邮件时遇到问题。
假设我的用户正在使用name@@gmail.com注册(双@是示例中的故意拼写错误)。Symfony 中的电子邮件约束验证已成功验证这一点,并且在我的数据库中创建了该用户。
但是当我尝试使用 Swiftmailer 发送邮件时,出现500 错误
给定的邮箱地址 [name@@gmail.com] 不符合 RFC 2822, 3.6.2。
来自 Swiftmailer 本身。
我有一个 Symfony 项目(非常简化)如下所示:
控制器/MyToolController.php
namespace App\Controller;
use App\Services\ToolsService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class MyToolController extends AbstractController
{
private $toolsService;
/**
* @param ToolsService|null $toolsService
*/
public function __construct(ToolsService $toolsService = null) {
$this->toolsService = $toolsService;
}
public function run() {
// some more code here...
$mailContent = $this->render('site/mail.html.twig', $data)->getContent();
$this->toolsService->sendMail($from, $to, $bcc, $mailContent, $subject);
// if I remove the following line, no emails are sent out!
return $this->render('site/thankyou.html.twig', $data);
}
}
Run Code Online (Sandbox Code Playgroud)
服务/MyToolService.php
namespace App\Services;
class ToolsService
{
/** @var \Swift_Mailer */
private …Run Code Online (Sandbox Code Playgroud) 我的设置是 Symfony 5,最新的 API-Platform 版本在 PHP 7.3 上运行。所以我希望能够查询姓名和用户名(甚至可能是电子邮件)。我需要编写自定义解析器吗?
这是我到目前为止所尝试的,但这导致 WHERE name = $name AND username = $name。
query SearchUsers ($name: String!) {
users(name: $name, username: $name) {
edges {
cursor
node {
id
username
email
avatar
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的实体:
/**
* @ApiResource
* @ApiFilter(SearchFilter::class, properties={
* "name": "ipartial",
* "username": "ipartial",
* "email": "ipartial",
* })
*
* @ORM\Table(name="users")
* @ORM\Entity(repositoryClass="Domain\Repository\UserRepository")
* @ORM\HasLifecycleCallbacks()
*/
class User
{
private $name;
private $username;
private $email;
// ... code omitted ... …Run Code Online (Sandbox Code Playgroud) 我正在尝试将 Symfony 应用程序部署到 Elastic Beanstalk,但看起来 URL 重写不起作用。
使用在 64 位 Amazon Linux 2 上运行的 PHP 7.4平台,文档根目录为/public。
.platform/nginx/conf.d/nginx.conf
server {
listen 80;
root /var/app/current/public;
index index.php;
location / {
# try to serve file directly, fallback to index.php
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
#fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_pass php-fpm;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
#include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
access_log /var/log/nginx/access.log main;
client_header_timeout 60;
client_body_timeout 60;
keepalive_timeout 60;
gzip off;
gzip_comp_level 4;
# Include the …Run Code Online (Sandbox Code Playgroud) 我正在配置 symfony 5 项目的环境,在测试测试环境 (APP_ENV = test) 时出现异常,因为它找不到 web-profiler 包。这是正常的,因为它是由 composer 使用 require --dev 安装的。这有点进退两难,因为即使我目前在测试环境中不需要这个包,我在技术上可能会。
更糟糕的是:我需要开发和测试中的学说夹具包;但是要让它也进行测试,我必须“删除--dev”选项,因此也将它投入生产,这很糟糕。
所以我想知道处理这个问题的常用方法是什么?我想这是一个普遍的问题。
我在不同的子域上有 2 个单独的 Symfony 安装。
但是,当我尝试访问第二个域时,它说:
致命错误:无法在 /var/www/public_test_api 中重新声明 Symfony\Component\String\u()(之前在 /var/www/public_api/releases/20200904200316/vendor/symfony/string/Resources/functions.php:14 中声明) /releases/20200909003532/vendor/symfony/string/Resources/functions.php 第 14 行
注意冲突是在不同的目录之间,相互之间没有任何关系。
这是缓存问题吗?我该如何解决这个问题?我试图为第二次安装禁用 OPCache,但它没有改变任何东西。APCu 也已启用。
我也遇到了同样使用 Symfony 的 3rd 方软件的问题。
禁用opcache.preload设置似乎摆脱了这个问题。
有没有办法在同一台服务器上运行所有这些应用程序并从预加载中受益?
自从我将项目从 symfony 4.4 更新到 5.0 以来,我的所有页面上都有以下弃用警告(只有我收到的警告):
请安装“intl”PHP 扩展以获得最佳性能。
在寻找解决方案后,我认为我需要安装 intl 组件,我这样做了:
composer require symfony/intl
我还安装了 symfony/翻译组件:
composer require symfony/translation
问题是弃用仍然存在(即使在bin/console cache:clear重新启动之后symfony serve)。
在 Symfony 5.1.8 项目中,我将 httplug 包更新到了 1.19.0 版。
它在变更日志中提到:
ConfiguredClientsStrategy 不再实现 EventSubscriberInterface,这已移至 ConfiguredClientsStrategyListener 以避免在每个请求上初始化策略。
这会导致 In 中的错误
EventDispatcher.php 第 270 行
Failed to create closure from callable: class 'Http\HttplugBundle\Discovery\ConfiguredClientsStrategy' does not have a method 'onEvent'
Run Code Online (Sandbox Code Playgroud) symfony ×10
php ×8
swiftmailer ×2
symfony4 ×2
composer-php ×1
graphql ×1
intl ×1
php-7.4 ×1
preload ×1
symfony-flex ×1
symfony5 ×1