使用 JMSSerialize 序列化遵循 SimplifiedYamlDriver 约定的 Doctrine2 实体

2024-01-04

symfony 赞助的项目 \Doctrine\ORM\Mapping\Driver\SimplifiedYamlDriver 在我的项目中非常有用,可以保持实体文件名干净简单。然而,JMSSerialize 假定每个实体的命名约定是完全限定的命名空间。在 Doctrine2 配置中使用 \Doctrine\ORM\Mapping\Driver\SimplifiedYamlDriver 时,情况并非如此。

(http://docs.doctrine-project.org/en/latest/reference/yaml-mapping.html http://docs.doctrine-project.org/en/latest/reference/yaml-mapping.html)

<?php
$namespaces = array(
  '/path/to/files1' => 'MyProject\Entities',
  '/path/to/files2' => 'OtherProject\Entities'
);
$driver = new \Doctrine\ORM\Mapping\Driver\SimplifiedYamlDriver($namespaces);

根据文档:文件名被缩短,“MyProject\Entities\User”将变为 User.orm.yml

但 JMSSerialzer 正在 $myDir 查找 YAML 文件。 '/MyProject.Entities.User.yml'

(see: http://jmsyst.com/libs/serializer/master/configuration#configuring-metadata-locations http://jmsyst.com/libs/serializer/master/configuration#configuring-metadata-locations)

问题:有没有办法覆盖 JMSSerialize 查找的元数据文件名?我已经使用 addMetadataDir() 来指定其位置

注意:这不是 Symfony2 项目


您是否使用了第二个参数addMetadataDir?

From JMS\Serializer\SerializerBuilder.php:

/**
 * Adds a directory where the serializer will look for class metadata.
 *
 * The namespace prefix will make the names of the actual metadata files a bit shorter. For example, let's assume
 * that you have a directory where you only store metadata files for the ``MyApplication\Entity`` namespace.
 *
 * If you use an empty prefix, your metadata files would need to look like:
 *
 * ``my-dir/MyApplication.Entity.SomeObject.yml``
 * ``my-dir/MyApplication.Entity.OtherObject.xml``
 *
 * If you use ``MyApplication\Entity`` as prefix, your metadata files would need to look like:
 *
 * ``my-dir/SomeObject.yml``
 * ``my-dir/OtherObject.yml``
 *
 * Please keep in mind that you currently may only have one directory per namespace prefix.
 *
 * @param string $dir The directory where metadata files are located.
 * @param string $namespacePrefix An optional prefix if you only store metadata for specific namespaces in this directory.
 *
 * @return SerializerBuilder
 *
 * @throws InvalidArgumentException When a directory does not exist
 * @throws InvalidArgumentException When a directory has already been registered
 */
public function addMetadataDir($dir, $namespacePrefix = '')
{
    // ...
}

看来如果您指定第二个参数,您就可以实现您正在寻找的目标。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JMSSerialize 序列化遵循 SimplifiedYamlDriver 约定的 Doctrine2 实体 的相关文章

  • NHibernate HQL 相当于 T-SQL 的 TOP 关键字

    NHibernate HQL 相当于 T SQL 的 TOP 关键字是什么 另外 用非 HQL 方式说 给我一门课的前 15 个 是什么意思 在 HQL 中这实际上非常简单 var top15 session CreateQuery fro
  • 适用于真正复杂查询的 ORM 解决方案

    在这样复杂的情况下 人们可以 应该使用任何 ORM 解决方案吗 这可以用以下方法完成吗Propel or Doctrine 目前我正在使用 Propel 所以如果有 Propel 解决方案 我会很高兴 如果我使用 propel 进行直接查询
  • Hibernate、MySQL 视图和 hibernate.hbm2ddl.auto = 验证

    我可以在 Hibernate 中使用 MySQL 视图 将它们视为表 即 该实体与为表创建的实体没有什么不同 但是 当 Hibernate 设置为验证模型时 我的应用程序将不会部署 因为它找不到视图 因为它假设它是一个表 是否可以在启用部署
  • Doctrine 不会在 MySQL 中生成跨数据库外键约束

    我有两个表 db1 Contact 和 db2 Recipient 每个收件人都应该是联系人 因此我在 db1 Contact ContactID 字段上的两个表之间设置了外键 我在 Recipient php 中使用以下注释表示这一点 O
  • 在 AppEngine 项目之外使用 Google AppEngine 数据存储区

    对于我的小框架Pyxer http code google com p pyxer 我希望能够在 AppEngine 项目之外使用 Google AppEngine 数据存储 因为我现在已经习惯了这种 ORM 模式 对于一些快速的黑客来说
  • 如何删除django中级联的一对一相关模型?

    背景 我在 Django 1 8 5 中定义了以下模型 class PublishInfo models Model pass class Book models Model info models OneToOneField Publis
  • 如何从数据库生成 Doctrine 实体并使用 PSR-4 自动加载?

    使用教义2 5使用 PSR 4 自动加载并将已设计的数据库模式转换为实体类 注释 问题是将导出的文件放入正确的目录结构中 作曲家 json autoload psr 4 Application src require doctrine or
  • Symfony错误在链配置的命名空间XXX中找不到类XXX

    关于这个主题已经有一些其他问题 但没有一个真正有帮助 我是 Symfony 的新手 所以很难理解它 我在文件 Client IntranetBundle LDAP LDAPAuthenticationProvider php 中 此代码导致
  • 将 Django +1.10 与 MongoDB 连接

    在过去的几个月里 有人为 MongoDB 更换了 Django 1 10 中的默认数据库引擎吗 我在谷歌上得到的所有信息都是六四年前的 最常见的结果包括mongodb 引擎这需要Django nonrel 来自 Django 1 5 的一个
  • @Transient 属性应该在 equals/hashCode/toString 中使用吗?

    我有 JPA 实体 其中一些属性注释为 Transient 我应该使用这些属性吗equals hashCode toString方法 我的第一个想法是NO但我不知道为什么 Tips Ideas 解释 的情况下toString 是不同的 你可
  • Eloquent/Laravel 三路多对多关系

    我对 Laravel 和 Eloquent 是全新的 而且我对 ORM 的经验也很少 假设我有三个数据库表 Widgets Actions Users 我建模了一个连接表 其中包含以下列 widget id action id user i
  • 具有 LINQ 支持的最完整的 ORM?

    我正在寻找一个提供完整或接近完整的 LINQ 支持的 ORM LINQ 到 SQL 支持 LINQ 内部的所有内容 Contains Math Log 等 在不创建新数据上下文的情况下无法预先加载关系属性 ADO NET 实体框架 糟糕的
  • 数据映射器和存储库之间到底有什么区别?

    嗯 我一直在试图找出数据映射器和存储库之间的区别 但到目前为止我仍然没有 在我看来 专家程序员说 存储库是映射层上的另一个抽象层 其中集中了查询构造代码 看似可以理解 但还是有些抽象 我之前在 stackoverflow 上读过这篇文章 这
  • NHibernate双向多对多映射列表/包

    我正在努力处理双向多对多映射 其中顺序在一侧很重要 但在另一侧则不重要 我有两个班级 项目和学生 一个项目有很多学生 顺序很重要 方案A John Sally Seth 方案B Alex Seth Amy John 一个学生有很多程序 但顺
  • Hibernate3:自引用对象

    需要一些帮助来了解如何执行此操作 我将在文件系统上运行递归 查找 并且希望将信息保留在单个数据库表中 具有自引用的层次结构 这是我想要填充的数据库表结构 目录对象表 id int NOT NULL name varchar 255 NOT
  • SQLAlchemy 如何使用“完全模块限定路径”?

    我正在为一个使用 sqlalchemy 的项目做出贡献 该项目有一个 model py 文件 其中定义了所有类 例如Foobar BASE 现在 我已经创建了another模块 mymodel py 我需要扩展其中一些类 例如 在 mymo
  • Doctrine QueryBuilder 重用部件

    我想计算所有符合我的条件的字段 并使用学说查询生成器逐页获取它们 我生成的查询取决于我的过滤器字段 第一部分是计算记录 以便我可以计算页数 qb em gt createQueryBuilder qb gt select COUNT m i
  • Laravel Eloquent with()-> 返回 null

    我正在尝试使用 Eloquent 来获取具有以下功能的特定产品 brand id映射到a的列brands表 该brand数组返回空 这里有什么明显需要改变的地方吗 product Product with images gt with br
  • 无法使用symfony2连接数据库oracle

    我需要的 我需要将oracle数据库与symfony2连接 我已经通过 php m 检查过 oci8 pdo odbc odbc 这是我关注的链接https gist github com johnkary 6481664 https gi
  • 如何通过引用文档查询嵌入文档?

    我正在使用 Doctrine ODM 但在通过引用文档查询嵌入文档时遇到问题 考虑以下文件

随机推荐

  • 在代理服务器后面的 Windows 上安装 angular-cli

    我目前正在公司代理服务器后面构建 Angular 2 演示 该演示存在阻止 NPM 和 TypeScript 打字 安装的已知问题 虽然我已经能够通过代理服务器设置解决这些问题 但我有点不确定如何处理最新问题 每当我尝试全局安装 angul
  • iPhone 访问 orkut API

    有人知道通过 iPhone SDK 访问 orkut API 的代码示例吗 我只找到了这个java版本http code google com p orkut os client http code google com p orkut o
  • 获取 Okta 中与用户关联的组列表

    我正在尝试通过在我的网站中作为服务提供商 SP 和 Okta env 实施 SAML 2 0 来与 Okta SSO 集成 作为我的身份提供商 IDP 我无法理解如何配置我的 IDP 以返回每个身份验证请求 用户所在的组 如何完成 另外 是
  • Java - 在外部文件中存储 SQL 语句[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个在外部文件中存储 SQL 语句的 Java 库 框架 技术 支持团队 包括 DBA 应该能
  • 在 Android 版 Phonegap 应用上播放声音

    我尝试播放 mp3 文件 如果我更改本地网络服务器上的文件路径 则此方法有效 但如果我在 Android 设备上运行此文件 则不会播放声音 也不会显示错误 我很确定找不到 mp3 文件 但我仍然不知道如何修复它 这是Html
  • 使用phonegap 在 xcode 4.1 上的 iframe 中允许外部主机

    我正在尝试创建一个 iPad iPhone 应用程序来显示链接到外部站点的 iFrame 它不一定位于 App Store 中 问题是 当我加载应用程序时 它会将我带到 Safari 我知道 XCode 的早期版本中有一个设置 您可以在其中
  • 如何在 watir-webdriver 中使用 :class 选择器精确匹配

    关于 Watir 0 5 x 向后不兼容的更改通过 class 查找元素现在匹配部分类属性 https github com watir watir webdriver issues 36 我如何获得旧的行为 IE 以匹配确切的类名称 在一
  • 当同时指定月份和星期几时,为什么 crontab 使用 OR?

    这是一个著名的 问题 当 crontab 行同时包含星期几和月中的某一天时 cron 使用 OR 来确定触发命令的日期 例如 如果你写 13 5 command 该命令将在每个星期五和每个月的第 13 天执行 而不仅仅是在 13 号星期五执
  • 过滤床文件中的重叠条目

    我有一个如下所示的床文件 1 183113 183114 chr1 183113 183240 0 1 187286 187287 chr1 187128 187287 0 1 187576 187587 chr1 187375 18757
  • Braintree Drop-in UI - 使用 AJAX 发送表单

    我正在尝试实现 Braintree Drop in UI 并且想使用自定义 jQuery ajax 方法发送表单 以前 我曾经使用 jQuery serialize 方法发送 非 dropin UI 表单 但对于新的 动态加载的 Dropi
  • 在 Windows 启动时运行程序

    我想知道是否有人可以向我解释如何让我的程序在启动时运行 我的程序是一个带有小型 WPF UI 的 C WCF 必须在服务器上运行 并且我需要确保该程序将在服务器重新启动或出于任何其他原因时启动 我环顾四周 看来我必须使用注册表项 但我不太熟
  • 获取组框中的子控件列表

    我的应用程序中有一个包含子控件的组框 如附图所示 我想枚举所有文本框 以使用简单的 foreach 循环执行一些验证 该文件大纲将给出控件外壳的一个大概的概念 foreach Control control in grpBxTargetSe
  • 提取内部 EXE 信息

    Windows EXE 文件有一些元数据 例如CompanyName FileVersion InternalName ProductName OriginalFileName ProductVersion etc 如何使用 PHP 提取此
  • 枚举 Postgres 表中的表分区

    假设我有一个这样的表 id part value 1 0 8 2 0 3 3 0 4 4 1 6 5 0 13 6 0 4 7 1 2 8 0 11 9 0 15 10 0 3 11 0 2 我想枚举部分属性为 0 的组 最终我想得到这个
  • 如何在单击子元素时隐藏父元素

    如何在单击 div 元素内的锚标记时隐藏父 div 元素 我知道我们如何在 javascript jQuery 中做到这一点 我正在寻找纯 CSS 解决方案 div border 1px solid red div span a helo
  • C++ 系统托盘专用程序

    在检查了微软关于系统托盘图标的文档 我可以找到 后 Shell NotifyIconA 函数 https learn microsoft com en us windows desktop api shellapi nf shellapi
  • django覆盖表单清理方法

    当覆盖表单清理方法时 您如何知道其对任何字段的验证是否失败 例如在下面的表单中 如果我覆盖 clean 方法 我如何知道表单是否在任何字段上验证失败 class PersonForm forms Form title Forms CharF
  • 如何使用 Postgres 数据库的 TypeORM 和 NodeJS 作为应用程序的后端服务器进行参数化查询

    我想从 postgres 表中获取行 其中 name SUPREME INT L 注意 该字符串的名称字符之间有一个单引号 我使用 TypeORM 作为 ORM POSTGRESQL 作为数据库 我的查询 import getConnect
  • 具有多个动态文本区域的 CKeditor

    我有一个允许提交多个步骤的表格 当用户单击 添加步骤 时 会出现另一个文本区域 我正在使用CKeditor 它在第一次迭代中效果很好 但在所有后续迭代中 它显示了一个标准文本区域 这是我的代码
  • 使用 JMSSerialize 序列化遵循 SimplifiedYamlDriver 约定的 Doctrine2 实体

    symfony 赞助的项目 Doctrine ORM Mapping Driver SimplifiedYamlDriver 在我的项目中非常有用 可以保持实体文件名干净简单 然而 JMSSerialize 假定每个实体的命名约定是完全限定