??? ?? (DI)? PHP 8 ??? ??? ???? ?? ??????. ??? ??? ?? ??? ??? ?? ????? ??? ?????. ?? ?? ??? ?? ?? ???? ?? ??? ?? ?? ? ? ????. ?? ??, ??????? ?? ???? A ???? ??????. di ???? ???? ??? ?? ???? ???? ?????. ????? ?? ?? ?? ? ???? ???? ?? ?????? ??? ???? ?? ?????? ??? ???? ??? ?????? ??? ??? ? ????. ??? ?? ????? ??? ??? ???? ??? ?? ???? ??? ? ????. PHPUnit? ?? ???? ?? ??? ??? ??? ?? ??? ?? ?? ? ????.
?? ????? DI? ?? ?? ??? ??? ????? ??? ??? ?? ??? ??? ?? ?? ??? ??????. ??? : User
User
// Without DI class User { public function getUserById(int $id): ?array { $db = new Database(); // Tight coupling! return $db->query("SELECT * FROM users WHERE id = $id"); } } // With DI class User { private Database $database; public function __construct(Database $database) { $this->database = $database; } public function getUserById(int $id): ?array { return $this->database->query("SELECT * FROM users WHERE id = $id"); } }
???? ?? ?? ???? ?????. ????? ???? ?? ??? ??? ??? ?? ??? ??? ??? ?????. User ????? ?? ??? : Database ???? ?? ?????? ?????. ?? ?? ??? ?? ??? ???? ?? ? ? ?? ??? ?? ?? ?????. User ??? ?? ???? ?? (?? ????? ??) :
Database
???? ??? ???? ?????. ??? ?? ? ???? ?????? ???? ?????? ? ?? ?? ? ????? ? ??? ???. ??? ?? ?? (TDD) :
? ??? PHP 8? ??? ???? ????? ?? ??? ??? ????? ?????????? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!
??? ???? ??
???? ?? ??? ??? ?? AI ?? ?
???? ?? ???? ??? AI ?????.
AI ? ???
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!
???? ?? ?? ?? ???
??? ??, ???? ?? ????.
??? PHP ?? ?? ??
??? ? ?? ??
? ??? ?? ?? ?????(SublimeText3)