1. Go to this page and download the library: Download moro/container7 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/ */
moro / container7 example snippets
use Moro\Container7\Container;
$container = new Container();
if ($container->has(Service::class)) {
$service = $container->get(Service::class);
}
$value = $container->get('parameters')->get('key');
$container->addProvider(SomeProvider::class);
class SomeProvider {
function someService(): Service {
return new Service();
}
}
class SomeProvider {
function someService(...$arguments): Service {
return new Service($arguments[0]);
}
}
class SomeProvider {
function someService(ServiceBeta $beta): ServiceAlpha {
return new ServiceAlpha($beta);
}
}
use Moro\Container7\Parameters;
class SomeProvider {
function someService(Parameters $parameters): Service {
return new Service($parameters->get('key'));
}
}
class SomeProvider {
function extendService(Service $service) {
$service->value = 'value'; // example
}
}
class SomeProvider {
function extendService(Service $service): ?Service {
return new Decorator($service);
}
}
use Moro\Container7\Parameters;
class SomeProvider {
function parameters(Parameters $parameters) {
$parameters->set('key1', 'value1');
$parameters->set('key2', '%key1%');
$parameters->add('key0', ['new item']);
}
function someService(Parameters $parameters): Service {
$service = new Service();
$service->value = $parameters->get('key2');
return $service;
}
}
use Moro\Container7\Container;
use Moro\Container7\Parameters;
$parameters = new Parameters(['key1' => 'value2']);
$container = new Container($parameters);
$container->addProvider(SomeProvider::class);
use Moro\Container7\Aliases;
class SomeProvider {
function someService(): Service {
return new Service();
}
function aliases(Aliases $aliases) {
// Add alias for unique interface in provider
$aliases->add('kernel', Service::class);
// or you can use method name
$aliases->add('kernel', 'someService');
}
}
$service = $container->get('kernel');
use Moro\Container7\Tags;
class SomeProvider {
function tags(Tags $tags) {
// Add tag for unique interface in provider
$tags->add('someTag', ServiceAlpha::class);
$tags->add('someTag', ServiceBeta::class);
// or you can use method name
$tags->add('someTag', 'getServiceAlpha');
$tags->add('someTag', 'getServiceBeta');
}
}
use Moro\Container7\Container;
$container = new Container();
$collection = $container->getCollection('A');
// Collection contains services with tag "A".
$collection = $collection->merge('B');
// Collection contains services with tags "A" or "B".
$collection = $collection->exclude('A');
// Collection contains services with tag "B" and without tag "A".
$collection = $collection->merge('B')->with('C');
// The collection contains services that are marked
// with "B" and "C" tags simultaneously.
use Moro\Container7\Container;
use Moro\Container7\Parameters;
$configuration = Parameters::fromFile('conf.json');
$container = new Container($configuration);
use Moro\Container7\Container;
use Moro\Container7\Provider;
class DynamicProvider {
function boot(Container $container) {
$configuration = [];
// ... dynamic create of configuration array ...
$container->addProvider(Provider::fromConfiguration(__METHOD__, $configuration));
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.