@extends('layout') @section('title', 'Dependency Injection with PHP-DI') @section('content')

Dependency Injection with PHP-DI

How to use PHP-DI in SysMVC.

SysMVC uses the PHP-DI library to manage dependency injection. This allows you to write more modular and testable code.

Basic Configuration

To configure PHP-DI, you can create a di-config.php file with the definitions of your dependencies:

{{ 
'   use DI\ContainerBuilder;

    return function (ContainerBuilder $containerBuilder) {
        $containerBuilder->addDefinitions([
            // Define your dependencies here
            ClientRepository::class => \DI\create(MySqlClientRepository::class),
        ]);
    };' 
}}

Usage

To use dependency injection in your classes, simply pass the dependencies through the constructor:

{{ 
'   class ClientService {
        private $clientRepository;
        
        public function __construct(ClientRepository $clientRepository) {
            $this->clientRepository = $clientRepository;
        }
        
        public function getClients() {
            return $this->clientRepository->findAll();
        }
    }' 
}}

With dependency injection, you can easily swap implementations and keep your code decoupled and more testable.



Github: https://github.com/syspanel/SysMVC.git



Contact

If you're interested in SysMVC, get in touch:


🙎 Support the Project

If you find this project useful, consider supporting its development with a donation via PayPal:

Donate via PayPal

@endsection