Register services, aliases, and factories in the ServiceManager (PSR-11 IoC container).
ServiceManager — Dependency Injection
// In module.config.php
use LaminasServiceManagerFactoryInvokableFactory;
return [
"service_manager" => [
"factories" => [
// Service factory
ModelPostTable::class => function($container) {
$adapter = $container->get(AdapterInterface::class);
return new ModelPostTable($adapter);
},
// Using InvokableFactory for no-dependency classes
ServiceEmailService::class => InvokableFactory::class,
],
"aliases" => [
"PostTable" => ModelPostTable::class,
],
],
"controllers" => [
"factories" => [
ControllerPostController::class => function($container) {
$postTable = $container->get(ModelPostTable::class);
return new ControllerPostController($postTable);
},
],
],
];
// Fetch from container
$postTable = $container->get(ModelPostTable::class);
$email = $container->get("PostTable"); // using alias