已关闭..。这个问题需要详细信息或清晰度..。它目前不接受答案。
想要改进这个问题吗?
添加详细信息并通过以下方式澄清问题编辑此帖子..。
6天前就关门了。
改进此问题
我只在我的项目中使用Symfony DI,Http,Kernel,Routing components,下面是Create your your Framework (https://symfony.com/doc/current/create\_framework/index.html)。项目,在这个项目上,我指定了@cerad是非常有帮助的。再次感谢。它可以用于服务和控制器依赖注入。
参见
没有全栈framework](https://stackoverflow.com/questions/66301368/symfony-components-without-the-full-stack-framework)的[Symfony组件
(第一集)和https://github.com/Monnomcjo/symfony-simplex但是现在我遇到了在依赖注入中实例化存储库的新困难。
我添加了symfony/orm-pack来使用ServiceEntityRepository。
更新:
正如评论中所指出的,我关心的是方法的问题。
我的问题表达得很糟糕,上下文也不够清楚。仍然在学习环境中,我尝试实现干净架构和领域驱动设计的概念。
在这种分区和独立性的思想中,我也试图更好地掌握我的框架,从几乎没有任何东西开始,随着我的前进,只添加我需要的东西。
在评论之后,我不再使用symfony / orm-pack,而是longer / dbal.
仍然有很多事情要做,但它是有效的。
#container.php
// Doctrine
$containerBuilder->register(\ExampleApp\Domain\Client\Entity\ClientRepository::class, \Infrastructure\Persistence\Doctrine\Client\DoctrineClientRepository::class)
->setArguments([new Reference('service_container')]);
$containerBuilder->register(\ExampleApp\Domain\Client\UseCase\GetClient\GetClient::class, \ExampleApp\Domain\Client\UseCase\GetClient\GetClient::class)
->setArguments([new Reference(\ExampleApp\Domain\Client\Entity\ClientRepository::class)]);
$containerBuilder->register(\ExampleApp\Presentation\Client\GetClientHtmlPresenter::class, \ExampleApp\Presentation\Client\GetClientHtmlPresenter::class);
$containerBuilder->register(\Infrastructure\View\GetClientView::class, \Infrastructure\View\GetClientView::class);
$containerBuilder->register(\Infrastructure\Controller\ClientController::class, \Infrastructure\Controller\ClientController::class)
->setArguments([
new Reference(\ExampleApp\Domain\Client\UseCase\GetClient\GetClient::class),
new Reference(\ExampleApp\Presentation\Client\GetClientHtmlPresenter::class),
new Reference(\Infrastructure\View\GetClientView::class)
]);现在可以返回了。https://github.com/Monnomcjo/symfony-simplex也会更新。
下一步,添加类型为services.yaml的.env和conf文件
发布于 2021-02-23 19:35:21
因为你现在的问题是失踪doctrine.orm.entity_manager
我认为要了解Symfony是如何做到这一点的,最好的方法就是看看DoctrineBundle。特别是在DependencyInjection/DoctrineExtension.php和Configuration从其接收配置值。您可能还想看看
服务definitions](https://github.com/doctrine/DoctrineBundle/blob/2.2.x/Resources/config/orm.xml#L100-L102) [..。
扩展类接受通过配置进行验证的配置(通常在您的config/package/trustine.yaml中),然后更新Resources/config下的服务定义。这种方法相当复杂,但它将帮助您了解Symfony中的事物是如何联系在一起的。
或者,您可以查看信条[ Docs](https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/tutorials/getting-started.html#obtaining-the-entitymanager) ]
要了解如何获取EntityManager,然后将其转换为Symfony Service Container注册:
$isDevMode = true;
$proxyDir = null;
$cache = null;
$useSimpleAnnotationReader = false;
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode, $proxyDir, $cache, $useSimpleAnnotationReader);
// or if you prefer yaml or XML
//$config = Setup::createXMLMetadataConfiguration(array(__DIR__."/config/xml"), $isDevMode);
//$config = Setup::createYAMLMetadataConfiguration(array(__DIR__."/config/yaml"), $isDevMode);
// database configuration parameters
$conn = array(
'driver' => 'pdo_sqlite',
'path' => __DIR__ . '/db.sqlite',
);
// obtaining the entity manager
$entityManager = EntityManager::create($conn, $config);您可以在上面的服务定义链接中看到EntityManager::create。如何在您的应用程序中做到这一点,很大程度上取决于您希望将其构建为与Symfony的距离有多近,以及您希望围绕Doctrine配置什么以及如何配置。
https://stackoverflow.com/questions/66328281
复制相似问题