锂不推荐的__init()方法,需要手动调用

时间:2014-01-11 16:26:20

标签: php lithium

我最近更新了锂库,我遇到了这个问题。 我收到这个错误:

的RuntimeException

Deprecated `app\models\StoreCategories::__init()` method, needs to be called it manually.

来源

/works/minhna/public_html/CMP/V0/libraries/lithium/core/Libraries.php:505

500 
 501        if ($path && include $path) { 
 502            static::$_cachedPaths[$class] = $path; 
 503            if (method_exists($class, '__init')) { 
 504                $msg = "Deprecated `{$class}::__init()` method, needs to be called it manually."; 
 505                throw new RuntimeException($msg); 
 506            } 
 507        } elseif ($require) { 
 508            throw new RuntimeException("Failed to load class `{$class}` from path `{$path}`."); 
 509        } 
 510    }

在StoreCategories模型中,我有一个简单的函数

public static function __init(array $options = array()){
    static::config($options);
    static::applyFilter('save', function ($self, $params, $chain) {
        if(!$params['entity']->_id){
            //set created date
            $params['entity']->created = strtotime(gmdate('Y-m-d H:i:s'));
        }
    }
}

我使用composer并在boostrap libraries.php中加载li3_socialauth库:

/**
 * load the socialauth library
 */
Libraries::add('li3_socialauth');
// Add the composer autoloader if not already done
require_once(LITHIUM_LIBRARY_PATH . '/autoload.php') ;

提前谢谢。

1 个答案:

答案 0 :(得分:2)

Lithium在静态对象中删除了__init(),请参阅this commit