سلام و عرض ادب
استاد من بقیه تاپیکها که در این مورد سوال کرده بودند رو هم خوندم، فقط موضوعی که متوجه نشدم اینه که اینجا با این دستور:
public function __construct(DatabaseConnectionInterface $connection)
ما یه آبجکت از کلاس DatabaseConnectionInterface ساختیم و درون متغیر connection قراردادیم. بعد متد getConnection کلاس DatabaseConnectionInterface رو به متغیر connectionی که درون QueryBuilder بود پاس دادیم. ولی متد getConnectionی که در کلاس DatabaseConnectionInterface هست که اصلا بدنه نداره و کلاس DatabaseConnectionInterface هم که اصلا کلاس PDO رو extend نکرده، پس چجوری متغیر connectionی که درون کلاس QueryBuilder قرار داشت تونست از متدهای کلاس PDO استفاده کنه؟
یعنی تونست این متدها رو از کلاس PDODatabaseConnection که فرزند DatabaseConnectionInterface هست، بگیره؟