PHP code example of viragrajput / virag-container

1. Go to this page and download the library: Download viragrajput/virag-container library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

viragrajput / virag-container example snippets


use Virag\Container\Container;

$container = new Container();

$container->bind('LoggerInterface', 'FileLogger');

$logger = $container->make('LoggerInterface');

$container->singleton('DatabaseConnection', function () {
    return new DatabaseConnection();
});

class UserRepository
{
    protected $db;

    public function __construct(DatabaseConnection $db)
    {
        $this->db = $db;
    }
}

$container->bind('UserRepository', 'UserRepository');

$userRepository = $container->make('UserRepository');

$container->when('PaymentGateway')
          ->needs('LoggerInterface', 'PaymentLogger');

$container->addServiceProvider('App\Providers\DatabaseServiceProvider');

$container->registerCustomResolver('MailService', function ($container) {
    return new ExternalMailService($container->make('Config')->get('mail.api_key'));
});

$container->addInflector('LoggerAwareInterface', function ($loggerAware) use ($container) {
    $loggerAware->setLogger($container->make('Logger'));
});

$container->enableAutoWiring();

$container->bindFactory('PaymentGateway', function ($container) {
    return new PaymentGateway($container->make('Config')->get('payment.gateway'));
});