有没有办法从单机代码中访问Doctrine资源库?

问题描述 投票:0回答:1

我有一个Symfony 4的应用程序,它已经完成并可以使用。任何上传的文件都放在doc根目录外的upload文件夹中,并通过一个单独的cdn网址访问。

在upload文件夹中,我有一个htaccess文件,它可以重定向任何请求,比如说图片,重定向到一个php文件,然后再为图片服务。

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

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

实际上,我试过在index.php中加入symfony bootstrap,但那会拖累路由工作的需要,而在这种情况下并不需要。

symfony doctrine-orm doctrine symfony4
1个回答
1
投票

你可以这样访问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());
© www.soinside.com 2019 - 2024. All rights reserved.