小编yiv*_*ivi的帖子

为什么我会看到 CheckMX 已弃用警告?

我在 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)

具体来说,它突出显示了 getResult() 函数,如屏幕截图所示: 在此处输入图片说明

symfony

2
推荐指数
1
解决办法
428
查看次数

如何为新捆绑包编写Symfony Flex配方?

我试图找到有关使用Symfony Flex的任何文档,但到目前为止还没有运气。

几乎所有文档都指向安装使用symfony Flex的捆绑软件,而不是如何创建使用它的捆绑软件。

我什至试图对某些软件包进行反向工程,但是再一次,没有运气。

我的目标是为中的捆绑包生成一个默认配置文件config/packages/my_bundle.yaml

我需要知道的是我需要在哪里放置它以及可以使用哪些env变量(如果有)?

php symfony symfony-flex symfony4

2
推荐指数
1
解决办法
91
查看次数

Symfony 中 RFC 2822、3.6.2 的电子邮件合规性和验证

我在通过Symfony Email Constraint验证用户电子邮件地址,然后尝试通过Swiftmailer向该用户发送邮件时遇到问题。

假设我的用户正在使用name@@gmail.com注册(双@是示例中的故意拼写错误)。Symfony 中的电子邮件约束验证已成功验证这一点,并且在我的数据库中创建了该用户。

但是当我尝试使用 Swiftmailer 发送邮件时,出现500 错误

给定的邮箱地址 [name@@gmail.com] 不符合 RFC 2822, 3.6.2。

来自 Swiftmailer 本身。

php swiftmailer symfony symfony-validator

2
推荐指数
1
解决办法
2186
查看次数

Symfony SwiftMailer:如果控制器不返回 $this->render() 响应,则不发送

我有一个 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)

php swiftmailer symfony symfony4

2
推荐指数
1
解决办法
88
查看次数

在单个查询中过滤多个字段的查询

我的设置是 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)

php symfony graphql api-platform.com

2
推荐指数
2
解决办法
2295
查看次数

将 Symfony 应用程序部署到 Elastic Beanstalk

我正在尝试将 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 amazon-elastic-beanstalk

2
推荐指数
1
解决办法
452
查看次数

如何在“测试”环境中启用“开发”包,以便它们在测试期间可用?

我正在配置 symfony 5 项目的环境,在测试测试环境 (APP_ENV = test) 时出现异常,因为它找不到 web-profiler 包。这是正常的,因为它是由 composer 使用 require --dev 安装的。这有点进退两难,因为即使我目前在测试环境中不需要这个包,我在技术上可能会。

更糟糕的是:我需要开发和测试中的学说夹具包;但是要让它也进行测试,我必须“删除--dev”选项,因此也将它投入生产,这很糟糕。

所以我想知道处理这个问题的常用方法是什么?我想这是一个普遍的问题。

php symfony composer-php

2
推荐指数
1
解决办法
57
查看次数

我可以在使用预加载时运行多个 Symfony 应用程序吗?

我在不同的子域上有 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设置似乎摆脱了这个问题。

有没有办法在同一台服务器上运行所有这些应用程序并从预加载中受益?

php preload symfony php-7.4

2
推荐指数
1
解决办法
407
查看次数

如何使用 symfony 5 摆脱 intl 弃用消息

自从我将项目从 symfony 4.4 更新到 5.0 以来,我的所有页面上都有以下弃用警告(只有我收到的警告):

请安装“intl”PHP 扩展以获得最佳性能。

在寻找解决方案后,我认为我需要安装 intl 组件,我这样做了:

composer require symfony/intl

我还安装了 symfony/翻译组件:

composer require symfony/translation

问题是弃用仍然存在(即使在bin/console cache:clear重新启动之后symfony serve)。

php intl symfony

2
推荐指数
1
解决办法
5042
查看次数

Symfony httplug 包处理缺少 EventSubscriberInterface

在 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)

php symfony symfony5

2
推荐指数
1
解决办法
325
查看次数