skip to content

Hint to avoid memory exhausted error (Symfony + doctrine1.2)

Let's solve this extremely annoying problem of Sf1.2

It is usual to have tasks that load a lot of objects from the database and do something with them. It can be generating a sitemap, generating thumbnails, etc.

When you do that, it is very likely that you find memory exhaustion problems like:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in /blablabla/lib/vendor/symfony/lib/log/sfVarLogger.class.php on line 170

How to overcome this? Luckily I found this thread on the symfony group. If I had discovered that thread earlier it would have saved a lot of time, so I’m replicating the solution here :)

The problem is that the doctrine profiler is enabled for sfBaseTask, as sf_debug is set to true.

To disable the profiler, you have to create a new environment in config/databases.yml:

task:
  symfony:
      param:
        profiler: false

all:
  symfony:
    class: sfDoctrineDatabase
      param:
        dsn:   ....
        username:   ...
        password:   ...

And then run the task with the option --env=task