My global.php has:
return [
'doctrine' => [
'connection' => [
'orm_default' => [
'driverClass' => PDOMySqlDriver::class,
'params' => [
'host' => '127.0.0.1',
'port' => '8889',
'user' => 'root',
'password' => 'root',
'dbname' => 'mezzio',
'encoding' => 'utf8',
'driverOptions' => [
1002 => 'SET NAMES utf8',
],
],
],
],
'migrations_configuration' => [
'orm_default' => [
'table_storage' => [
'table_name' => 'Migrations',
'version_column_name' => 'version',
'version_column_length' => 1024,
'executed_at_column_name' => 'executedAt',
'execution_time_column_name' => 'executionTime',
],
'migrations_paths' => [
'Migrations' => 'data/Migrations',
], // an array of namespace => path
'migrations' => [], // an array of fully qualified migrations
'all_or_nothing' => false,
'check_database_platform' => true,
'organize_migrations' => 'year_and_month', // year or year_and_month
'custom_template' => null,
],
'orm_other' => [],
],
'entitymanager' => [
'orm_default' => [
'connection' => 'orm_default',
'configuration' => 'orm_default',
],
],
'configuration' => [
'orm_default' => [
'proxy_dir' => 'data/DoctrineORMModule/Proxy',
'proxy_namespace' => 'DoctrineORMModule\Proxy',
],
],
'eventmanager' => [
'orm_default' => [],
],
'entity_resolver' => [
'orm_default' => [],
],
'sql_logger_collector' => [
'orm_default' => [],
],
'doctrine_factories' => [
'authenticationadapter' => 'Auth\Adapter\AuthAdapterFactory',
],
],
'dependencies' => [
'factories' => [
MyAppSessionMiddleware::class => MyAppSessionMiddlewareFactory::class,
SessionRepository::class => SessionRepositoryFactory::class,
],
],
];
Following is my pdo stuff. I am trying to create on similar lines but nothing works:
$dependencies['factories'][EntityManager::class] = function (ContainerInterface $container) use ($conn) {
// Create and configure the PDO instance
// Get the database connection parameters from the configuration
$connectionConfig = $container->get('config')['doctrine']['connection']['orm_default']['params'];
// Extract individual parameters
$host = $connectionConfig['host'];
$port = $connectionConfig['port'];
$user = $connectionConfig['user'];
$password = $connectionConfig['password'];
$dbname = $connectionConfig['dbname'];
// Create PDO DSN
$dsn = 'mysql:host=' . $host . ';port=' . $port . ';dbname=' . $dbname;
$connectionParams = [
'driverClass' => Driver::class,
'params' => [
'host' => $host,
'port' => $port,
'user' => $user,
'password' => $password,
'dbname' => $dbname,
'charset' => 'utf8',
],
];
return (new EntityManager($conn, $connectionParams))->getConnection();
};
How do I get the $entityManager work?