Ich habe ein Elternteil Klasse Modell wie folgt aus:PHP Objekt Zusammensetzung Praxis
namespace vendor\appname\core;
class Model
{
protected $db;
protected $session;
protected $cookie;
protected $record;
public function __construct()
{
$this->db = new Db;
$this->session = new Session;
$this->cookie = new Cookie;
$this->record = new Record;
}
}
hier ich mein Kind Modelle haben, wo ich das Basismodell erweitern und verwenden können dort Objekte
namespace vendor\appname\models;
use vendor\appname\core;
class Login extends Model
{
// here i can use simply like so
$this->db->prepare() // and so on
$this->session->set() // and so on so fourth
}
Also, wenn i habe 100 Klasse sollte ich das gleiche tun "Objekt Zusammensetzung" ist dies eine gute Praxis ??? Was ist mit dem Registrierungsmuster oder der Fabrik? Ist es möglich, es hier zu implementieren? oder Abhängigkeitsinjektion
Sie sollten die Abhängigkeitsinjektion verwenden. –
@JonStirling was ich über die Abhängigkeitsinjektion weiß, dass Sie den Klassennamen eingeben und dann das Objekt übergeben, aber in meinem Fall, wie kann ich das tun? Ich erweitere die Elternklasse !! –
Ihr Beispiel zeigt keine Objektkomposition, es zeigt Vererbung an. Anstatt zu fragen, ob Sie eine bestimmte DP verwenden können, sollten Sie Ihre Frage klären und erklären, was Sie tun müssen. – Kwadz