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";