有没有办法从独立代码访问 Doctrine 存储库?

Is there a way to access Doctrine repositories from stand-alone code?

我有一个 Symfony 4 应用程序,它是完整的并且可以运行。任何上传的文件都放在文档根目录外的上传文件夹中,并通过单独的 cdn url.

访问

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

我想做的是在发送图像请求的同时发送一个授权密钥,以便独立的 index.php 文件可以从数据库中检查用户是否有效。

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

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

您可以像这样访问 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());