Dependency inversion trong php và laravel

04/01/2022   Laravel

Dependency inversion trong php và laravel

1. Dependency inversion là gì
- Dependency inversion là một nguyên tắc lập trình
- Inversion of control (IoC) == dependency inversion
- Dependency injection (DI) là một design partern dựa theo dependency inversion

2. Dependency inversion trong PHP      

============================

interface Database{

public function connectToDatabase();

}

class MySQLConnection implements Database{

public function connectToDatabase(){

return 'Mysql';

}

}

class MongoDBConnection implements Database{

public function connectToDatabase(){

return 'Mongo';

}

}

// using Mysql or Mongo

class UserDB {

private $dbConnection;

public function __construct(Database $dbConnection){ //preresent for objects

$this->dbConnection = $dbConnection->connectToDatabase();

echo $this->dbConnection.'<br>';

}

}

$mySlq=new MySQLConnection();

$mongo=new MongoDBConnection();

$n=new UserDB($mongo);

============================

3. Dependency inversion trong laravel

============================

interface CarInterface {

public function start();

}

class Subaru implements CarInterface {

public function start() {

echo 'Subaru start'.'<br>';

}

}

class Porche implements CarInterface {

public function start() {

echo 'Porche start'.'<br>';

}

}

// laravel bind

App::bind('CarInterface', 'Porche');

// or: App::bind('CarInterface', 'Subaru');

Route::get('/', function(){

// laravel resolve

$car = App::make('CarInterface');

$car->start();

});

============================

Cám ơn

Bài viết cùng chủ đề