如何在cron作业函数中使用类

时间:2016-11-14 作者:Phil Emerson

我在WordPress中成功地运行了cron作业,但是,当我尝试从cron函数中调用类时,它不会运行


add_action( \'hourly_event\', \'hourly_function\' );
function hourly_function() {
   // This otherwise works when not within a cron job function
   $newClass = new newClass();
   $newClass->newClass_function($var1, $var2, $var3); 
}
$newClass在插件中声明。

<小时>

require plugin_ROOT.\'gd-text/Box.php\';
require plugin_ROOT.\'gd-text/Color.php\';
require plugin_ROOT.\'gd-text/HorizontalAlignment.php\';
require plugin_ROOT.\'gd-text/TextWrapping.php\';
require plugin_ROOT.\'gd-text/VerticalAlignment.php\';

use GDText\\Box;
use GDText\\Color;


class newClass {

    public function newClass_function($var1, $var2, $var3){
    }
}

1 个回复
最合适的回答,由SO网友:jgraup 整理而成

您正在使用未定义的变量调用函数,这些变量是函数正常工作所必需的。

function hourly_function() {

   $newClass = new newClass();

   $var1 = \'this should\';
   $var2 = \'work with\';
   $var3 = \'some content\';

   $newClass->newClass_function($var1, $var2, $var3); 
}
您可能希望将这些变量移动到__construct

if ( ! class_exists(\'AClass\')) {
    class AClass {
        function __construct( $var1 = null, $var2 = null, $var3 = null ) {
            //...
        }
    }
}
$instance = new AClass(1,2,3);
或者__invoke 方法:

if ( ! class_exists(\'BClass\')) {
    class BClass {
        function __invoke( $var1 = null, $var2 = null, $var3 = null ) {
            //...
        }
    }
}
$instance = new BClass();
$instance(1,2,3);