Ich möchte, dass meine Klasse Methoden von ihren Eltern erbt, ich habe dies getan, indem ich die Klasse erweitert habe. Aber ich möchte auch eine Klasse unter Verwendung des Basisnamens (ohne Namespace) instanziieren und die korrekte Klasse instanziieren lassen, basierend auf dem aktuellen Namespace ausgewählt werden und dann auf eine "gemeinsame" Klasse zurückgreifen, falls sie nicht existiert.Dynamisch verschiedene Klassen abhängig vom aktuellen Namespace verwenden
Beispiel
<?php
namespace common\models {
class Account extends Model{}
class Orders extends Model{}
class Customer extends Model{
use common\models\Account;
public static function getAccountClass(){
echo get_class(new Account());
}
public static function getOrdersClass(){
echo get_class(new Order());
}
}
}
namespace frontend\models {
class Account extends common\models\Account {}
class Customer extends common\models\customer {
}
}
ich die common\models\Customer::getAccountClass()
zur Ausgabe common\models\Account
und
frontend\models\Customer::getAccountClass()
zur Ausgabe frontend\models\Account
aber als frontend\models\Orders
nicht existiert frontend\models\Customer::getOrdersClass()
noch Ausgang common\models\Orders
möchte