CE 4.7 - cron.php - Fatal Error -> Cannot redeclare isAdmin()

Hallo zusammen,

in der Datei /bin/cron.php steht folgender Code


if ( !function_exists( 'isAdmin' )) {
    /**
     * Returns false.
     *
     * @return bool
     */
    function isAdmin()
    {
        return false;
    }
}

// custom functions file
require getShopBasePath() . 'modules/functions.php';

// Generic utility method file
require_once getShopBasePath() . 'core/oxfunctions.php';

Wenn ich cron.php ausführen lasse, erhalte ich einen Fatal Error:


PHP Fatal error:  Cannot redeclare isAdmin() (previously declared in /blablabla/httpdocs/bin/cron.php:46) in /blablabla/httpdocs/core/oxfunctions.php on line 187

In oxfunctions.php wird nicht abgefragt, ob die Funktion isAdmin() bereits definiert wurde


function isAdmin()
{
    if (defined('OX_IS_ADMIN')) {
        return OX_IS_ADMIN;
    }

    return false;
}

Ich denke, das heißt, dass in cron.php die Funktion isAdmin() hinter dem Einbinden von oxfunctions.php stattfinden muss.


// custom functions file
require getShopBasePath() . 'modules/functions.php';

if ( !function_exists( 'isAdmin' )) {
    /**
     * Returns false.
     *
     * @return bool
     */
    function isAdmin()
    {
        return false;
    }
}

// Generic utility method file
require_once getShopBasePath() . 'core/oxfunctions.php';

Oder in oxfunctions wird mit function_exists(‘isAdmin’) überprüft, ob die Funktion bereits definiert wurde.

ODER mache ich irgendwas völlig falsch, wenn ich cron.php vom cronjob ausführen lasse?

Grüße

Gregor

In der 4.7.0 wurde der Bootstrap Prozess entsprechend der neuen Application-Structure angepasst.

Die cronjob-Datei

/bin/cron.php

wurde dabei aber vergessen …

Eigene Skripte und Cronjobs kann man so definieren bzw. migrieren:


error_reporting( E_ALL ^ E_NOTICE );

define('OX_BASE_PATH', dirname(__FILE__) .'/../' );

// custom functions file
require OX_BASE_PATH . 'bootstrap.php';

$myConfig = oxConfig::getInstance();

Danke dafür!

meine cron.php ist jetzt folgendermaßen abgeändert…


echo "-----------------------
";
echo "cronjob started ".date("Y-m-d H:i:s
");
echo "-----------------------
";


error_reporting( E_ALL ^ E_NOTICE ); 

define('OX_BASE_PATH', dirname(__FILE__) .'/../' ); 

// custom functions file 
require OX_BASE_PATH . 'bootstrap.php'; 

$myConfig = oxConfig::getInstance();


// custom functions file
require getShopBasePath() . 'modules/functions.php';

// Generic utility method file
require_once getShopBasePath() . 'core/oxfunctions.php';

// initializes singleton config class
$myConfig = oxRegistry::getConfig();

// executing maintenance tasks..
oxNew( "oxmaintenance" )->execute();


/// here comes my magic
echo "magic stuff

";

///




// closing page, writing cache and so on..
$myConfig->pageClose();

echo "-----------------------
";
echo "cronjob ended ".date("Y-m-d H:i:s
");
echo "-----------------------
";

Viele Grüße

Gregor