PHP code example of coroq / container

1. Go to this page and download the library: Download coroq/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/ */

    

coroq / container example snippets


use Coroq\Container\OmniContainer;

// Create container
$container = new OmniContainer();

// Configure namespaces for auto-resolution
$container->addNamespace('App\\Domain');
$container->addNamespace('App\\Infrastructure');

// Register entries
$container->setValue('config', ['db' => 'mysql:host=localhost;dbname=app']);
$container->setClass('userRepository', UserRepository::class);
$container->setSingletonClass('logger', Logger::class);

// Register factory methods
$container->setFactory('session', function($config) {
    return new Session($config['session_timeout']);
});
$container->setSingletonFactory('database', function($config) {
    return new Database($config['db']);
});

// Create alias
$container->setAlias('repos.user', 'userRepository');

// Retrieve entries
$logger = $container->get('logger');
$userRepo = $container->get('userRepository');
$userService = $container->get(App\Domain\UserService::class);

use Coroq\Container\StaticContainer;
use Coroq\Container\ArgumentsResolver\TypeBasedArgumentsResolver;

$resolver = new TypeBasedArgumentsResolver($container);
$container = new StaticContainer($resolver);

// Register entries
$container->setValue('appName', 'My App');
$container->setFactory('userService', function($userRepository) {
    return new UserService($userRepository);
});
$container->setSingletonClass('mailer', Mailer::class);

// Get entries
$service = $container->get('userService');

use Coroq\Container\DynamicContainer;

$container = new DynamicContainer();
$container->addNamespace('App\\Domain');

// Auto-creates instances from registered namespaces
$userService = $container->get(App\Domain\UserService::class);

use Coroq\Container\CompositeContainer;

$container = new CompositeContainer();
$container->addContainer($staticContainer);
$container->addContainer($dynamicContainer);

// Searches containers in order until entry is found
$service = $container->get('service');