在Doctrine和ini_set中耗尽的允许内存大小不起作用

时间:2015-11-04 17:00:34

标签: php symfony doctrine-orm

我在查询中导入了很多文件,问题是我得到了一个PHP错误,告诉我我已经耗尽了所有的回忆。

但是这个问题只发生在生产服务器上,而不是我本地的。

我已经尝试过做

ini_set('memory_limit', '-1');

set_time_limit ( 0 );

我的代码是

public function mediachooserAction(Request $request, $origin = null, $type = null, $term = null)
{
    ini_set('memory_limit', '-1');
    if ($this->container->has('profiler')) {
        $this->container->get('profiler')->disable();
    }

    $entities = $this->getRepository('AppBundle:Media')->findMedias($origin, $type, $term);

    $pagerfanta = new Pagerfanta(new ArrayAdapter($entities));
    $pagerfanta->setMaxPerPage(20);
    if ($request->query->has('page')) {
        $pagerfanta->setCurrentPage($request->query->get('page'));
    }

    return $this->render('backend/ckeditor/mediachooser/index.html.twig', [
        'entities'      => $pagerfanta,
        'origin'        => $origin,
        'type'          => $type,
        'originChoices' => Media::getOriginChoices(),
        'typeChoices'   => Media::getTypeChoices(),
    ]);
}

但这并没有帮助。

您是否知道我如何在不对程序进行任何优化的情况下解决此问题?

2 个答案:

答案 0 :(得分:0)

可以是php.ini中定义的safe_mode(aka poop_mode)。在ini_set(' memory_limit',' -1')之后使用ini_get(" memory_limit")来查看新值是什么。

如果你有权访问php.ini,你也可以在那里设置内存限制

答案 1 :(得分:0)

我在.httpaccess中做了posx,现在工作正常。