31 lines
788 B
Plaintext
31 lines
788 B
Plaintext
== Why is this an issue?
|
|
|
|
Dependency injection is a software design pattern in which one or more dependencies (or services) are injected, or passed by reference, into a dependent object (or client) and are made part of the client's state. The pattern separates the creation of a client's dependencies from its own behavior, which allows program designs to be loosely coupled and to follow the dependency inversion and single responsibility principles.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,text]
|
|
----
|
|
class SomeClass {
|
|
|
|
public function __construct() {
|
|
$this->object = new SomeOtherClass(); // Noncompliant
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,text]
|
|
----
|
|
class SomeClass {
|
|
|
|
public function __construct(SomeOtherClass $object) {
|
|
$this->object = $object;
|
|
}
|
|
}
|
|
----
|
|
|