首页 > 解决方案 > 有没有办法从独立代码访问 Doctrine 存储库?

问题描述

我有一个完整且有效的 Symfony 4 应用程序。任何上传的文件都放在 doc 根目录外的上传文件夹中,并通过单独的 cdn url 访问。

在上传文件夹中,我有一个 htaccess 文件,它将任何请求(例如图像)重定向到一个 php 文件,然后该文件提供图像。

我想要做的是发送一个身份验证密钥以及图像请求,以便独立的 index.php 文件可以从数据库中检查用户是否有效。

这意味着我需要某种方式从 symfony 外部访问 symfony 实体管理器,包括它。另一种选择是对 symfony 控制器的 curl 请求,但如果可能的话,我宁愿不添加额外的网络请求。第三个选项是一个单独的 pdo 直接连接到数据库并进行 sql 查询......但我还是更喜欢通过以某种方式包含 symfony 来使用 symfony 实体管理器,这样我就可以在需要时使用其他功能。

我实际上尝试在 index.php 中包含 symfony 引导程序,但这会拖累路由工作的需要,这在这种情况下是不需要的。

标签: symfonydoctrine-ormdoctrinesymfony4

解决方案


您可以像这样访问 EntityManager:

require __DIR__.'/../vendor/autoload.php';

(new Dotenv())->load(__DIR__.'/../.env');

$kernel = new Kernel('dev', true);
$kernel->boot();

$user = $kernel->getContainer()->get('doctrine.orm.entity_manager')->getRepository(Repo::class)->find(id);


dd($user->getRoles());

推荐阅读