Dependency Injection in PHP OOPS

 <?php

//  Dependency Injection

class Logger
{
    public function log($message)
    {
        echo "Logging Message : $message" . "<br>";
    }
}
$logger = new Logger();
$logger->log("This is a message");

//Here below, "UserProfile" class is become dependent on "Logger" class.
class UserProfile
{
    private $logger;

    public function createUser()
    {
        /// create user.
        $this->logger->log("User created.");
    }

    public function updateUser()
    {
        /// update user.
        $this->logger->log("User updated.");
    }

    public function deleteUser()
    {
        /// delete user.
        $this->logger->log("User deleted.");
    }

    public function __construct(Logger $logger)
    {
        $this->logger = $logger;
    }
}

$logger = new Logger();

$profile = new UserProfile($logger);
$profile->createUser();
$profile->updateUser();
$profile->deleteUser();

//  OUTPUT :
//Logging Message : This is a message
// Logging Message : User created.
// Logging Message : User updated.
// Logging Message : User deleted.

?>

Comments

Popular posts from this blog

GROUP BY Clause and HAVING Clause in PHP

Method Overriding in Traits in PHP

Mysqli database Connection and Display Table Data from Database