Niedawno poznałem zalety wstrzyknięcia zależności, ale zastanawiam się, czy powinienem używać go w moim projekcie, ponieważ nie potrzebuję nawet pełnego mvc. Teraz, kiedy go używam, zdaję sobie sprawę z dodatkowego obciążenia na każdej stronie, którą piszę. Na przykład ...Czy powinienem używać zastrzyku zależności w moim projekcie php?
require_once '../../include/session.class.php';
require_once '../../include/db.class.php';
require_once '../../include/account.class.php';
$objSession = new Session();
$objDb = new Db();
$objAccount = new Account($objSession, $objDb);
account.class.php
class Account {
...
public function __construct(Session $objSession, Db $objDb) {
$this->session = $objSession;
$this->db = $objDb;
}
}
... klasa konto będzie zawsze trzeba dB i sesję i będę zawsze tylko mają jedną klasę każda. Więc moje pytanie jest, powinien być używany DI w takiej sytuacji, czy mam po prostu użyć ...
account.class.php
require_once '../../include/session.class.php';
require_once '../../include/db.class.php';
class Account {
...
public function __construct() {
$this->session = new Session();
$this->db = new Db();
}
}
...?
Dependency Injection to nie tylko narzędzie MVC, to dobra praktyka w wielu różnych projektach, niezależnie od tego, czy korzystasz z frameworka, czy nie. –
Niestety, nie zamierzałem sugerować, że tak jest, tylko że ten projekt go nie wymaga. – Isius
Naprawdę możesz sprawić, że kod będzie znacznie czystszy, po prostu zaimplementujesz mechanizm ładujący, aby pozbyć się wszystkich wymagań (z wyjątkiem oczywiście konieczności autoloadera). – GordonM