#php #doctrine
Вопрос:
Я создаю микро-фреймворк php и использую доктрину для ORM. Но я сталкиваюсь со странной «проблемой» с командой Доктрины.
Когда я использую команду:
@php vendor/bin/doctrine orm:schema-tool:update --force
Я понимаю это:
<h1>Hello world!</h1>
[OK] Nothing to update - your database is already in sync with the current entity metadata.
Команда работает, однако, с моей точки зрения, здесь таинственным образом появляется HTML-код. И, по-видимому, это связано с маршрутом»/», потому что, когда я удаляю его, я получаю это сообщение:
Fatal error: Uncaught LeagueRouteHttpExceptionNotFoundException: Not Found in /home/projects/mini-phpf/vendor/league/route/src/Dispatcher.php:160
Stack trace:
#0 /home/projects/mini-phpf/vendor/league/route/src/Dispatcher.php(32): LeagueRouteDispatcher->setNotFoundDecoratorMiddleware()
#1 /home/projects/mini-phpf/vendor/league/route/src/Router.php(109): LeagueRouteDispatcher->dispatchRequest(Object(LaminasDiactorosServerRequest))
#2 /home/projects/mini-phpf/app/bootstrap.php(21): LeagueRouteRouter->dispatch(Object(LaminasDiactorosServerRequest))
#3 /home/projects/mini-phpf/config/cli-config.php(5): require_once('/home/projects/m...')
#4 /home/projects/mini-phpf/vendor/doctrine/orm/bin/doctrine.php(58): require('/home/projects/m...')
#5 /home/projects/mini-phpf/vendor/doctrine/orm/bin/doctrine(4): include('/home/projects/m...')
#6 {main}
thrown in /home/projects/mini-phpf/vendor/league/route/src/Dispatcher.php on line 160
Мой код структурирован следующим образом:
dependencies.php
<?php declare(strict_types=1);
use DoctrineCommonAnnotationsAnnotationReader;
use DoctrineORMEntityManager;
use DoctrineORMMappingDriverAnnotationDriver;
use DoctrineORMToolsSetup;
use PsrContainerContainerInterface;
return [
...
/*
* Entity Manager.
*/
'entity' => function (ContainerInterface $container): EntityManager {
$doctrineSettings = $container->get('settings')['doctrine'];
$config = Setup::createAnnotationMetadataConfiguration(
$doctrineSettings['metadata_dirs'],
$doctrineSettings['dev_mode'],
$doctrineSettings['useSimpleAnnotationReader'],
);
$config->setMetadataDriverImpl(
new AnnotationDriver(
new AnnotationReader(),
$doctrineSettings['metadata_dirs']
)
);
return EntityManager::create($doctrineSettings['connection'], $config);
}
];
cli-config.php:
<?php
use DoctrineORMToolsConsoleConsoleRunner;
require_once dirname(__DIR__) . '/app/bootstrap.php';
$entityManager = $container->get('entity');
return ConsoleRunner::createHelperSet($entityManager);