Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Symfony实体和条令映射,无需数据库_Php_Symfony_Symfony5 - Fatal编程技术网

Php 使用Symfony实体和条令映射,无需数据库

Php 使用Symfony实体和条令映射,无需数据库,php,symfony,symfony5,Php,Symfony,Symfony5,我们正在将我们的项目从定制CMS迁移到Symfony 5.1。我们使用的不是数据库,而是RESTAPI。目前,我们使用的实体没有将它们连接到任何数据库(没有@ORM注释或配置文件),我们将所有REST逻辑放在存储库文件夹中 当前,如果我们在会话中保存实体 $example = new Example(); $request->getSession()->set('example', $example); 在下一个请求中,我们将得到错误: Class "App\Entity

我们正在将我们的项目从定制CMS迁移到Symfony 5.1。我们使用的不是数据库,而是RESTAPI。目前,我们使用的实体没有将它们连接到任何数据库(没有
@ORM
注释或配置文件),我们将所有REST逻辑放在存储库文件夹中

当前,如果我们在会话中保存实体

$example = new Example();
$request->getSession()->set('example', $example);
在下一个请求中,我们将得到错误:

Class "App\Entity\Example" is not a valid entity or mapped super class.
当然,如果我们放置正确的
@ORM
注释,这可能会被修复,但是它需要一个数据库


这个问题可以解决吗?如果不可能,这个场景的合适架构是什么?

让条令成为管理数据的工具。事实上,没有数据库,您将需要类似的东西来管理RESTAPI的数据

看看这个捆绑包:

编辑: 除了其中一条注释外,不再维护DoctrineRestDriver。事实上,该捆绑包不支持Symfony 5.x。 要使用DoctrineRestDriver的功能,您可以将symfony降级为支持的4.x。 使用DoctrineRestDriver包可以解决使用DoctrineRestDriver管理RESTAPI的架构问题

如果您不想降级symfony,您必须实施自己的“数据管理器解决方案”,将api用作您的数据库


但我认为RESTAPI的体系结构问题与您当前的错误没有直接关系。我们需要更多的代码来理解您的特定映射超类错误来自何处(存储库、实体).

如果您不使用某种数据库,逻辑原则就不是您所需要的。只需创建您自己的实体类和存储库类。在会话中存储整个对象通常不是很好或必要,但如果这样做,请使它们可序列化。Class“App\entity\Example”不是有效的实体或映射的超类,Doctrine某处希望映射该实体。请尝试在config/bundles.php中注释这两个Doctrine类。可能还需要删除这两个Doctrine config/packages文件。该捆绑包很棒,但该捆绑包不再维护,并且不支持Symfony 5.1