Vom: 07.12.2011

Pimcore und die max_execution_time

Wer in Pimcore die max_execution_time hochsetzen will oder muss weil sein Script länger braucht als der default wird mit Einstellungen in der php.ini, im Apache Virtual Host oder der .htaccess kein Glück haben, denn: Pimcore setzt sich per set_time_limit() seine eigene Ausführungszeit. Man kann nun eine eigene Vorgabe im Pimcore Code direkt bearbeiten, und zwar die Variable $maxExecutionTime: pimcore/lib/Pimcore.php:

    public static function setSystemRequirements() {
        // try to set system-internal variables

        $maxExecutionTime = 240;
        error_reporting(E_ALL ^ E_NOTICE);
        @ini_set("memory_limit", "1024M");
        @ini_set("max_execution_time", $maxExecutionTime);
        @ini_set("short_open_tag", 1);
        @ini_set("magic_quotes_gpc", 0);
        @ini_set("magic_quotes_runtime", 0);
        set_time_limit($maxExecutionTime);

Die Angabe hier ist dabei in Sekunden. Der Nachteil dieser Methode ist, dass ein Update der Pimcore.php diese Änderung wieder rückgängig macht. Sinnvoller ist daher eine Angabe an anderer zentraler Steller, aber im eigenen Code. Hierfür sieht Pimcore die Klasse Website_Controller_Action, von der man seine eigenen Controller ableiten sollte. Die betreffende Zeile mit set_time_limit() bringt man am Besten in der init()-Methode unter: