我正在尝试使用PHP CLI(命令行界面)中的一些扩展Zend_Db_Table
类。
通过Apache使用时,一切都按预期工作。但是当从CLI使用时,我收到以下错误:
[01-Feb-2011 14:41:34] PHP致命错误:访问/ home / www /
中未声明的静态属性:KidsclubIdentities::$tableName
如果我var_dump($tableVariables); die();
功能在下面的班级的col()
函数中,我会按预期获得打印输出,但不包含我模型的public static
个变量( KidsclubIdentities
)。
所以我最好的猜测是,当使用CLI与Apache
时,范围是不同的class My_Db_Table extends Zend_Db_Table
{
public function col($varname) {
$tableVariables = get_class_vars(get_class($this));
if(array_key_exists($varname, $tableVariables)) {
return $tableVariables[$varname];
} else if(array_key_exists($varname . 'Column', $tableVariables)) {
return $tableVariables[$varname . 'Column'];
}
return $varname;
}
[...]
我的模特
class KidsclubIdentities extends My_Db_Table
{
protected $_name = 'kidsclub_identities';
protected $_rowClass = 'KidsclubIdentity';
public static $tableName = 'kidsclub_identities';
public static $primaryColumn = 'kidsclub_identity_id';
public static $statusColumn = 'kidsclub_identity_status';
public static $userIdColumn = 'user_id';
public static $identityIdColumn = 'identity_id';
public static $identityLocationTypeColumn = 'identity_location_type';
我计划使用CLI从crontab执行某些操作。但我会将注意力集中在基于apache的cron脚本上。