php - Symfony : eating all my ram when fetching from postgresql

标签 php postgresql symfony ubuntu

首先这是我正在使用的:

  • KDE neon 用户版 5.20 (Ubuntu 20.04)
  • symfony CLI v4.21.3
  • php v7.4.3
  • PostgreSQL v12.5

  • Apache2 也已安装,但我使用的是 symfony 本地服务器。
    Apache2 和 PostgreSQL 被禁用,每当我想处理这个项目时,我都会启动它们。
    使用 php bin/console 创建实体和迁移时我没有遇到任何问题.
    php bin/console doctrine:migrations:migrate命令正确地创建了我的表。
    将数据插入表中没有问题。
    我有两个不同的表:
  • Room
  • User

  • 它们在我的数据库的公共(public)架构中,目前分别有 2 行和 6 行。
    我试图在我的 Controller 中运行以下代码只是为了测试:
    class MainController extends AbstractController {
        /**
         * @Route("/", name="index")
         */
        public function index(): Response {
            $room = $this->getDoctrine()->getManager()->getRepository(Room::class)->find(1);
    
            var_dump($room);
    
            return $this->render("main/index.html.twig", [
                "controller_name" => "welcome"
            ]);
        }
    }
    
    出于某种原因,当我试图在我的浏览器上加载这个页面时,symfony 吃掉了我所有的内存。如果我不关闭选项卡或停止本地服务器,我的计算机开始变慢,因为内存已满。
    My poor RAM
    我也尝试简单地使用:
    $room = $this->getDoctrine()->getManager()->getRepository(Room::class)->findAll();
    
    我遇到了同样的问题。
    但是,当尝试获取不存在的东西时,一切正常。
    $room = $this->getDoctrine()->getManager()->getRepository(Room::class)->find(999);
    
    是我设置的东西吗?还是 postgresql ?
    谢谢你。

    最佳答案

    显然,Room 对象太大并且还包含依赖对象,因此您的浏览器正在努力显示大量数据。我建议使用 VarDumper component而不是 var_dump。它在使用内部引用和递归处理大型对象方面更有效。

    dump($room);
    

    关于php - Symfony : eating all my ram when fetching from postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65263870/

    相关文章:

    postgresql - PostgreSQL 中的词典排序非常慢?

    php - Symfony2,如何跳过在 Twig 模板中循环打印重复值?

    postgresql - 我可以使用内部联接改进此查询吗?

    sql - PostgreSQL:在具有相同列的行中选择一列中具有最小值的行

    php - 如何重定向到 symfony 的 web/app.php

    validation - Symfony-2 给出不止一个验证错误消息

    php - 在数组值之前和之后添加字符串以进行 php>mysql 搜索

    php - 如何创建一个全局可访问的对象

    php - 使用 PHP 检查网站是否启用了 Gzip

    php - 将值或变量传递给 Paypal 购物车