2016-09-28 3 views
3

Ich würde gerne yii\db\ActiveQuery mit meiner eigenen Klasse erweitern oder ersetzen und die gesamte Anwendung verwenden.Yii2 erweitern oder ersetzen Kern Klasse

Dies ist in die @alias Funktionalität von CedricYii am Ende der this GitHub issue referenziert bringen.

Aufgrund der privaten Natur einiger der geänderten Funktionen, werde ich wahrscheinlich ersetzen müssen.

Ist das möglich? Oder muss ich das Repository forkieren?

Antwort

3

Verwenden Sie hierzu Dependency Injection Container.

Schreiben Sie in Ihrer Anwendung Bootstrap-Code unten:

Yii::$container->set('yii\db\ActiveQuery', 'app\components\ActiveQuery'); 
+1

Danke, das wunderbar funktioniert! – Arth

+0

Eine Idee, warum es nicht für Core Validator funktioniert? Yii :: $ container-> set ('yii \ validators \ Validator', 'app \ components \ Validator'); – SenG

+0

Erweitert oder ersetzt die Klasse diese Klasse? Das ist das gleiche wie das Setzen von 'Yii :: $ classMap ['yii \ db \ ActiveQuery'] = '@ common/components/ActiveQuery.php';'? – friek108

Verwandte Themen