PHP code example of mtchabok / container_light

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

    

mtchabok / container_light example snippets


$container = new \MCL\Container();
$container->add([
    'prepareMessage'=>function(string $message){ return ".:[ $message ]:."; },
    'showMessage'=>function (string $message) use ($container) { echo $container->prepareMessage($message); },
]);
$container->showMessage('test message!');

$container = new \MCL\Container();
$container->add([
    'prepareMessage'=>function(string $message){ return ".:[ $message ]:."; },
    'showMessage'=>function (string $message) use ($container) { echo $container->prepareMessage($message); },
    'test'=>function(){ return "\nHello World!"; },
    'test2'=>fn() => "\nHow Are You?",
    'test3'=>"\nI`m Fine!",
    'uniqid' => \MCL\Resource\Definition::createCallable('uniqid'),
    'uniq' =>  \MCL\Resource\Definition::createAlias('uniqid')->shared(true),
    'p1' => \MCL\Resource\Definition::createValue('good')->protected(true),
    ':params' => function($p,$c,$id){ echo "\n[on params of '$id'] "; },
    ':after' => function($p, $c, $id){ return is_string($p) ?"$p [after on: $id]" :$p; },
]);

$container = new \MCL\Container();
$container->add(
    function (\MCL\Resource\Source $source, \MCL\Container $container) {
        return [
            'prepareMessage'=>function(string $message){ return ".:[ $message ]:."; },
            'showMessage'=>function (string $message) use ($container) { echo $container->prepareMessage($message); },
            'test'=>function(){ return "\nHello World!"; },
            'test2'=>fn() => "\nHow Are You?",
            'test3'=>"\nI`m Fine!",
            'uniqid' => $source->callable('uniqid'),
            'uniq' => $source->alias('uniqid')->shared(true),
            'p1' => $source->value('good')->protected(true),
            ':params' => function($p,$c,$id){ echo "\n[on params of '$id'] "; },
            ':after' => function($p, $c, $id){ return is_string($p) ?"$p [after on: $id]" :$p; },
        ];
    }
);

use MCL\Resource\Source;
/** @var Source $this */
$container = $this->container;
return [
    'prepareMessage'=>function(string $message){ return ".:[ $message ]:."; },
    'showMessage'=>function (string $message) use ($container) { echo $container->prepareMessage($message); },
    'test'=>function(){ return "\nHello World!"; },
    'test2'=>fn() => "\nHow Are You?",
    'test3'=>"\nI`m Fine!",
    'uniqid' => $this->callable('uniqid'),
    'uniq' => $this->alias('uniqid')->shared(true),
    'p1' => $this->value('good')->protected(true),
    ':params' => function($p,$c,$id){ echo "\n[on params of '$id'] "; },
    ':after' => function($p, $c, $id){ return is_string($p) ?"$p [after on: $id]" :$p; },
];

$container = new \MCL\Container();
$container->add('source.php');

$container = new \MCL\Container();
$container->add(['uniqid'=>\MCL\Resource\Definition::createCallable('uniqid')->shared(true)]);
echo $container->uniqid()."\n";
echo $container->uniqid()."\n";
echo $container->uniqid()."\n";

$container = new \MCL\Container();
$container->add(['uniqid'=>fn () => 'text unique']);
$container->add(['uniqid'=>\MCL\Resource\Definition::createCallable('uniqid')->protected(true)]);
$container->add(['uniqid'=>'wow']);
echo $container->uniqid()."\n";

$container = new \MCL\Container();
$container->add([
    'message' => 'test message!',
    'showMessage'=>\MCL\Resource\Definition::createCallable(function (string $message) use ($container) { return "msg: $message\n"; })
        ->parameters(function ($args) use ($container) {
            return !empty($args) ?$args :[$container->message];
        }),
]);
echo $container->showMessage();
echo $container->showMessage('another message!');

$container = new \MCL\Container();
$container->add([
    'uniqid' => \MCL\Resource\Definition::createCallable('uniqid'),
    'uniq' => \MCL\Resource\Definition::createAlias('uniqid')->shared(true),
]);
echo '1. uniqid: '.$container->uniqid()."\n";
echo '2. uniq: '.$container->uniq()."\n";
echo '3. uniqid: '.$container->uniqid()."\n";
echo '4. uniq: '.$container->uniq()."\n";

$container = new \MCL\Container();
$container->add([
    'uniqid' => \MCL\Resource\Definition::createCallable('uniqid'),
    'uniq' => \MCL\Resource\Definition::createAlias('n1.uniqid')->shared(true),
],'n1');
$container->add([ ':after' => function ($p) { return "$p [2]"; } ],'n1');
$container->add([ ':after' => function ($p) { return "$p [1]"; } ]);
echo '1. uniqid: '.$container->call('n1.uniqid')."\n";
echo '2. uniq: '.$container->call('n1.uniq')."\n";
echo '3. uniqid: '.$container->call('n1.uniqid')."\n";
echo '4. uniq: '.$container->call('n1.uniq')."\n";