小编for*_*erg的帖子

学说对生产有问题,但不是开发

我之前在两种环境中都在本地计算机和目标主机上测试了Symfony的Web应用程序:prod和dev - 两者都运行良好.所以我在我的本地计算机上完成了一英里的石头,仍然只在dev上测试.一切正常.然而 - Doctrine似乎现在还没有开始生产 - 我不知道为什么以及它如何停止工作.

这就是我所看到的 - 这段代码(来自DefaultController.php)正在研究prod和dev:

    $tags = $this->getDoctrine()
            ->getRepository("MyWebBundle:Tag");
Run Code Online (Sandbox Code Playgroud)

但是这个(一行更多)仅适用于dev,但不是prod:

    $tags = $this->getDoctrine()
            ->getRepository("MyWebBundle:Tag")
            ->find(1);
Run Code Online (Sandbox Code Playgroud)

在prod中,最后一行导致网页"死亡".毫无疑问发生了错误,但我在日志中没有任何消息,当然在prod env中Symfony是沉默的.我不知道如何处理这个问题......最奇怪的是,prod工作得恰到好处.

更新:好的,我追踪了代码的一部分,这有助于工作和不工作(但在生产中,在开发中始终有效).数据库中存在一些关系(Tag Many-to-One to Category).以下是Entity/Tag.php中的这部分代码:

/**
* @ORM\ManyToOne(targetEntity="Category")
* @ORM\JoinColumn(name="id_category", referencedColumnName="id_category", nullable=true)
*/
protected $category;
Run Code Online (Sandbox Code Playgroud)

有趣的是Symfony2并不详细...当我从Tag.php中删除它时,我的webapp工作正常.如果我重新输入这个文件,它不会...

更新:经过进一步的研究,我可以看到实际上所有的关系都是有问题的(刺激,而不是开发).我以上述方式为数据库编写了额外的"人工"(用于测试目的)查询,并且都给出了两种效果之一: 当表位于层次依赖之上时,一切正常(让我们称之为A类型) *当表时有关系,Symfony只是停止工作,没有任何消息(让我们称之为B型...*

我还尝试用空表进行测试并完成测试."B型"表中有两种情况: 当为空时,它有效 *存储数据时(有关系),它不起作用*

php symfony doctrine-orm

2
推荐指数
1
解决办法
1557
查看次数

PHP内存限制-在不编辑php.ini的情况下进行更改?

我正在使用Symfony2,在从我所付费用的主机的服务器上可以看到耗尽内存的错误。是否可以在不编辑php.ini的情况下设置新限制(不可访问)?

php symfony

2
推荐指数
1
解决办法
8940
查看次数

与不需要的方法接口

有没有办法在接口中指示可选方法(以便合同只显示要给出的参数的数量/类型)?

请给出更多的理解和洞察力,并指出解决方案?例如,请参阅此讨论:Java接口中的可选方法

在应用程序中,我使用连接到持久性(Doctrine)的Listeners.所以我正在使用其中一些方法:

prePersist()
preUpdate()
postPersist()
postUpdate()
Run Code Online (Sandbox Code Playgroud)

等等

现在,在重构时,由于实体太多(要保留的对象),我决定将这些方法的各个部分拆分为不同的类.

然而,并非所有这些都需要所有pre -...和post -...方法.我需要确保给出适当数量和类型的参数.你是如何用PHP做到的?

php interface

1
推荐指数
1
解决办法
5507
查看次数

交换参数

我有以下事实:

    make(product_A, product_Z, product_Y).
    make(P, X, Y) :- make(P, Y, X).
Run Code Online (Sandbox Code Playgroud)

我想确保产生product_A的半成品(即product_Z和product_Y)无论其在查询中的位置如何都是正确的.

所以我想要这个查询:

make(product_A, product_Y, product_Z).
Run Code Online (Sandbox Code Playgroud)

还有这个:

make(product_A, product_Z, product_Y).
Run Code Online (Sandbox Code Playgroud)

应该被Prolog视为等价物(相同) - 即使我没有将这两个案例作为事实放入Prolog的数据库中.换句话说,我想让参数(product_Z和product_Y)在查询中可以交换.

但是当我把代码放在开头时,Prolog似乎重复了一个无限循环.

那我该怎么做呢?

prolog

1
推荐指数
1
解决办法
112
查看次数

标签 统计

php ×3

symfony ×2

doctrine-orm ×1

interface ×1

prolog ×1