Symfony Database Connection (DBAL Module)
We can use Ecotone's Symfony integration to reuse Connections that are already defined in your Symfony Application.
Using existing Connections [Recommended]
Suppose we already defined connection in our "doctrine.yaml" file:
doctrine:
dbal:
# If this configuration is not present, then "default" is implicit config
connections:
default:
url: '%env(resolve:DATABASE_DSN)%'Then to use it as our Default Connection, we can use Service Context config:
final readonly class EcotoneConfiguration
{
#[ServiceContext]
public function dbalConfiguration()
{
return SymfonyConnectionReference::defaultConnection('default');
}
}By reusing the same database connection that our application already uses, we ensure that everything—our database changes and message handling—happens within the same transaction. f anything fails, Ecotone automatically rolls back both the data changes and messaging related changes, keeping our system in a consistent state.
Using Manager Registry
Configuring Dbal Module with Manager Registry allows to make your Entities work as a Ecotone's Aggregates.
Suppose we already defined connection in our "doctrine.yaml" file:
Then to use it as our Default Connection, we can use Service Context config:
If you use Manager Registry Connection, be aware that "doctrine/orm" package need to be installed.
Using DSN
If we don't have existing connection defined, we can make use of DSN directly
Last updated
Was this helpful?