问题标签 [doctrine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
search - ORM 中的搜索策略
我正在寻找有关在不同 ORM 中处理搜索的信息。
目前我正在用 PHP 重新开发一些旧应用程序,其中一个要求是:使所有内容或几乎所有内容都可搜索,因此用户只需键入“punkrock live”,该应用程序就会找到视频剪辑、音乐曲目、评论、即将发生的事件,甚至标记为的用户评论方式。
在一切都可搜索的环境中,ORM 需要以两种方式支持此功能:
- 在 ORM 的“O”端提供一些索引 API
- 为“R”端的批量数据库检索提供手段
理想的解决方案将根据搜索到的字符串返回现成的对象。你知道有什么好的端到端解决方案可以完成这项工作,不一定是 PHP 吗?如果你处理过类似的问题,很高兴听听你的经历。不仅仅是使用 Lucene或语义网是oneliners 的方式,但 ;-)*
php - 为什么 var_dump 一个 Doctrine Objects 会杀死我的 Apache?
我有一个非常奇怪的问题,当我尝试var_dump
(或print_r
)一个 Doctrine 对象时,我的 Apache 响应一个空白页(200 OK 标题)。我可以var_dump
使用普通的 php var,例如:
它工作正常。但是我不能使用任何 Doctrine 类中的任何对象(例如来自 的结果$connection->query()
,或者来自我的 Doctrine 对象模型的类的实例)。
有人知道为什么会这样吗?
mysql - One-to-many relationship in the same table
Im trying to use to define a one-to-many relationship in a single table. For example lets say I have a Groups table with these entries:
The group Coldplay could be a child of the group Capital Records and a child of the group Management Company and Gnarls Barkley could only be a child of Atlantic Records.
What is the best way to represent this relationship. I am using PHP and mySQL. Also I am using PHP-Doctrine as my ORM if that helps.
I was thinking that I would need to create a linking table called group_groups that would have 2 columns. owner_id and group_id. However i'm not sure if that is best way to do this.
Any insight would be appreciated. Let me know if I explained my problem good enough.
php - 你对 Doctrine ORM 有什么体验?
你对教义有什么经验?我从来都不是那种 ORM 的人,我主要使用一些基本的数据库抽象层(如 adodb)进行管理。
但我了解它的所有概念和好处。因此,当一个需要 ORM 的项目出现时,我想我会尝试其中一个 ORM 框架。
我必须在原则和推进之间做出决定,所以我选择了原则,因为我不想处理 phing 要求。
我不知道我做错了什么。我带着正确的心态进来了。而且我绝不是“初级” php 小子。但我一直在与系统作斗争。有很多文档,但感觉有点杂乱无章。像 YAML 这样简单的东西到 db 表创建是行不通的,只是在没有错误或任何东西的情况下失败。许多其他的东西有点时髦,需要在工作之前进行额外的调整。
也许我在这里做了一些愚蠢的新手假设,一旦我发现它是什么,我就会有一个哈哈的时刻。但现在我完全讨厌这个系统。
是否有任何人可以提供的一些提示,或者可能将我指向有关该主题的良好资源或有关此问题的一些权威网站/人?或者也许只是推荐另一个“正常工作”的 ORM 框架?
php - 为什么学说返回的领域比我要求的要多?
我正在使用 Doctrine(1.0.3 版)来查看是否适合我正在编写的应用程序集合。
我正在尝试进行查询并仅返回 3 个字段。我在一个表中得到了正确的字段,但是当我只想要一个字段时,我得到了所有的连接表。我已经在 phpMyAdmin 中写出了 SQL 应该是什么,它只返回我需要的内容。
当我没有在查询中要求它时,它给了我一个描述值。这两个表具有在适当的设置方法中定义的一对一关系。
我错过了什么的任何线索?
php - 为什么 PHP Doctine 的 free() 不起作用?
这是一个适合你们任何 Doctrine 用户的。我有一个 PHP CLI 守护进程,它每 n 秒检查一次表以查找尚未处理的条目。它基本上是一个FIFO。无论如何,我总是超过分配给 PHP 的内存,因为 Doctrine 并没有释放它的资源。为了解决这个问题,它免费提供了查询对象。我似乎无法让它工作。这是代码:
任何想法我做错了什么?
编辑:我正在使用 1.0.3
编辑:我已经尝试了以下所有建议。我非常有希望,unset()
因为在我找到它之前我就在那里free()
。
这是更多可能有助于任何帮助的代码。在您质疑连接的打开和关闭之前,它将是生成子进程的守护进程,并且根据我的经验,连接必须是唯一的。
一些示例输出:
php - 您可以使用 Doctrine 从现有表生成迁移吗?
是否可以从 Doctrine 中的表模式自动生成迁移脚本?
例如,在新功能的大量开发过程中,我通常会在编写初始代码时首先构建我的表。我通常不会创建迁移来开始,因为表的定义可能会随着功能仍处于初级阶段而发生变化。一旦功能准备好提交,我将编写一个迁移来为新功能生成表结构。通常,会有几个新表。
叫我懒惰,但如果可以自动构建这些迁移,那就太棒了。
例如:
教义构建迁移表名
有什么东西可以完成这样的事情吗?
php - 使用 PHPUnit 对 Doctrine 对象进行单元测试
我开始尝试使用 PHPUnit 测试我的 Doctrine 对象,并且希望每次都从我的模型对象中重新加载数据库。
我的第一次尝试看起来像这样:
问题是当第二次测试再次调用 setUp() 时, createTablesFromModels() 失败,所以我收到一个错误,因为没有表存在。
我非常感谢其他人如何为 PHPUnit 或其他单元测试目的重新初始化 Doctrine 连接的示例。
php - 使用 Doctrine (DQL) 在 Self 上加入表
我正在尝试使用教义的 DQL 加入自己的表。场景是:
我有一个产品属性值表,它通过参考表链接到产品表。产品属性值将用作产品的过滤器,因此,产品属性值表需要连接回自身以过滤多个属性。
我的方法如下:
问题是从getSql()
调用中获得的结果 SQL 对产品属性值链接表有重复的别名(MySQL 错误:)#1066 - Not unique table/alias: 'p6'
。据推测,这是由于产品和产品属性值之间的引用关系(产品属性值链接)被重用。
生成的 SQL 为:
如您所见,P6 作为别名出现了两次。
有人知道使用 DQL 实现此目的的正确方法吗?
提前谢谢了。
architecture - 公司是否应该在所有开发工作中强制使用单一架构?
我知道这是一个略微修辞的问题,但我想听听支持或拒绝这一学说的意见,因为这将帮助我在不使用指定解决方案的请求中建立更好的案例。
一点背景知识:我开发和维护了一个严格在内部使用的大型成熟应用程序(用于 UI 的 VFP,用于中间和后端的 Oracle PL/SQL)。我已经问过我的上级关于用 C# 重写 UI,但我被告知所有未来的开发工作都将在 Java /Spring 中完成。我已经解释过,从桌面应用程序到 Web 应用程序的工作量要比简单地迁移到 C# 要大得多。我还解释了整个 UI 如何必须进行重大重新设计才能过渡到 Web 浏览器。最后,我解释说这个应用程序只在内部使用,因此与外部应用程序所获得的好处相比,拥有一个 Web 架构所实现的好处不会那么多。不幸的是,我的论点并没有动摇他们。
我的一部分很想投降并尝试用 Java 重写,以便获得经验,但我担心这可能是一个项目的灾难,需要四倍于迁移到 C# 所需的时间和精力。
我知道让一个部门只支持一种语言是有好处的,但对我来说,感觉就像我们在用锤子敲螺丝一样。
那么,一家公司在所有开发工作中使用单一解决方案的好处和坏处是什么?此外,是否有其他人发现自己处于类似的情况,即他们选择的语言被拒绝,尽管该选择有所有实际原因?