リチウム非推奨の __init() メソッド。手動で呼び出す必要があります。

StackOverflow https://stackoverflow.com//questions/21064764

  •  26-12-2019
  •  | 
  •  

質問

最近リチウムライブラリを更新したところ、この問題が発生しました。このエラーが発生します:

ランタイム例外

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'));
        }
    }
}

私はコンポーザーを使用し、boostrap library.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') ;

よろしくお願いします。

役に立ちましたか?

解決

Lithium は静的オブジェクトの __init() を取り除きました。を参照してください。 このコミット.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top