小编AD7*_*six的帖子

为什么CakePHPs cake_core_method_cache文件会随着时间的推移而变大?

我们有一个很大的CakePHP(目前是2.4.7)SAAS-app.它已经非常成熟,直到上周我们才对CakePHPs-core提供的功能有任何实际问题.

上周末我们遇到了一个非常惊人的情况,我们的应用程序变得非常缓慢和错误.我们查看了所有类型的服务器监控,发现在过去几个小时内i/o统计数据暴涨.经过一番调查后,我们将问题分离到了Cake的' cake_core_method_cache '文件中.平均每天,此文件的大小为200 kb.上周末,它达到了约40万桶.

部署例程的一部分是从app/tmp/cache和app/tmp/persistent文件夹中删除所有缓存文件.因为我们经常部署(每天几次),所以缓存会经常被清除.不幸的是,上周的假期暂停了我们的部署,看起来这是核心/缓存功能的问题.

所以,我的两个问题是:

a)有谁知道,为什么cake_core_method_cache会随着时间的推移变大?

b)有没有其他可能解决这个问题,以便不断删除这个文件?

php ubuntu cakephp cakephp-2.4

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

Symfony2 Doctrine MongoDB回滚

我正在尝试使用Symfony2,Doctrine和MongoDB构建一组安全的测试.

我需要做的是在测试开始时加载很多灯具,并在它结束时卸载它们.我想过用一个交易来做,但是...我找不到有关如何用Doctrine和Mongo做的文档!

我在Doctrine文档中找到了关于如何与ORM进行交易的良好文档,但没有关于ODM.

于是我带着一看的源代码Connection.php的原则,蒙戈使用过类,我还没有发现beginTransaction,commit并且rollback这些方法DBAL版本使用.

我一无所知,然后我问自己"甚至可以在MongoDB中回滚?",如果在MongoDB常见问题解答中找到的答案是:

MongoDB不使用传统锁定或复杂事务与回滚

:(所以我想这就是为什么beginTransactionODM中没有或没有任何东西......

但我的问题仍然存在:如何为我的测试实现一种回滚?

我现在唯一的想法是手动获取我加载的文档的所有ID,然后删除它们tearDown().但是,嗯......它有点糟透了,不是吗?

其他想法??

编辑: 在我对这个问题的第一次评论之后,关于我想在测试和开发中拥有相同数据库的事实,我想:为什么不使用单独的测试数据库,在测试开始时开发数据库被复制,那可以轻松掉线?

这可能是一个更好的主意吗?它实际上对我来说更容易,更安全.你们有什么感想?

谢谢 :)

php tdd mongodb symfony doctrine-orm

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

如何在生成时回显输出

如何为以下循环的每次迭代回显一些内容:

<?
    for($i=0;$i<5;$i++) {
          // some (slow) logic
          echo $i;
    } 
?>
Run Code Online (Sandbox Code Playgroud)

我希望在运行时看到$i输出的值,但是这不输出任何内容,然后0 1 2 3 4执行脚本.

php

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

内联TinyMCE更改输入名称

我在某些span标签上创建了一堆内联tinyMCE编辑器,就像这样

<span class="editor">text here</span>

 <script type="text/javascript">
 tinymce.init({
        selector: ".editor",
        inline: true,
        object_resizing: false,
        toolbar: "undo redo",
        menubar: false,
        forced_root_block: false,
    });
</script>
Run Code Online (Sandbox Code Playgroud)

但我想隐藏输入它自动生成名为mce_ [number]以外的名称,以便它匹配cakePHP框架所期望的内容.我尝试用javascript更改这些字段的name属性.有时它可以工作,有时候这些输入字段在提交表单时不会有任何数据.有帮助吗?

cakephp tinymce cakephp-2.0

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

CakePHP - 这些文件是否不必要?

下载CakePHP时,会出现以下文件:

.editorconfig,.travis.yml,build.properties和build.xml

我以前从未真正编辑过这些文件或将它们用于我的应用程序,但我从未删除它们.这些文件重要吗?或者我可以删除它们吗?

我正在使用CakePHP版本2.4.2

cakephp cakephp-2.4

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

我如何防止来自php的远程文件包含攻击?

这是我在index.php中的代码

include ($_GET['page']);
Run Code Online (Sandbox Code Playgroud)

实际上我需要包含来自url的页面

"?page=go.php"
Run Code Online (Sandbox Code Playgroud)

另一方面我无法过滤

"?page=example.com"
Run Code Online (Sandbox Code Playgroud)

至于某些情况,我也需要包括这个值.但这是一个远程文件包含(RFI)漏洞.如何防止来自我网站的RFI攻击?我正在做类似的事情

$filename = $_GET['page'];
if (file_exists($filename)) {
{
include ($_GET['page']);
}
Run Code Online (Sandbox Code Playgroud)

但它只过滤

"?page=go.php"
Run Code Online (Sandbox Code Playgroud)

这个短片的页面.我很生气

"?page=example.com"
Run Code Online (Sandbox Code Playgroud)

这个短片的页面.

php

5
推荐指数
2
解决办法
3559
查看次数

为什么phpMyAdmin文件大小限制没有改变?

我正在使用WAMP Server,并尝试上传文件大小为131 MB的sql文件.

当前限制在phpMyAdmin上传屏幕上显示128MiB.

但我的php.ini配置是:

upload_max_filesize = 2M
post_max_size = 2M
Run Code Online (Sandbox Code Playgroud)

这对我来说有点尴尬.但后来,我把它们改为:

upload_max_filesize = 256M
post_max_size = 256M
Run Code Online (Sandbox Code Playgroud)

它仍然显示(最大:128MiB)限制.

我正在编辑的文件位于"C:\ wamp\bin\apache\apache2.4.9\bin \"目录中,我在更改这些值后重新启动了服务器.

我通过在cmd中键入mysql命令找到了解决此问题的方法.但我的问题是,为什么它不反映我在这里的变化?

php phpmyadmin

5
推荐指数
2
解决办法
4531
查看次数

在Ubuntu 12.04 LTS上从CakePHP 3连接到SQL Server

我的设置是在Windows上工作,但我最近切换到Ubuntu 12.04 LTS,现在它将无法连接.当我加载一个我需要与SQL Server通信的页面时,我收到此错误:

由于缺少PHP扩展或未满足的依赖项,无法使用数据库驱动程序Cake\Database\Driver\Sqlserver

很明显CakePHP找不到SQL Server PDO驱动程序.

我找到了许多旧的教程来帮助我,但我最近才拿到了(我希望能够在我的CakePHP网站上使用PDO).这是我遵循的教程.

使用终端,我可以使用此命令访问数据库

sqlcmd -S my.sql.server.com -U username
Run Code Online (Sandbox Code Playgroud)

使用CakePHP 3.x从我的ubuntu安装连接到这个sql server数据库需要做什么?

php sql-server pdo cakephp cakephp-3.0

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

如何删除与标签同名的git分支?

在我的项目中,我删除了挂在 git 中的所有旧分支,但有些分支我无法删除:

$ git push origin :0.2.0.0
error: dst refspec 0.2.0.0 matches more than one.
error: failed to push some refs to 'ssh://git@<repo>.git'
Run Code Online (Sandbox Code Playgroud)

我的 git repos 很少,而且我有一些可能是错误创建的旧分支。这些分支与创建的标签同名,我无法删除这些分支。

有没有办法删除这些分支?似乎您可以在任何地方找到的唯一命令是git push origin :<branch>git push -d origin <branch>并且这些命令中的分支和标签之间没有区别。

我不知道这些分支是如何创建的,但我想摆脱它们。

git

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

仅在CAKEPHP中的find上获取一些字段

我的问题是当我从用户表中获取用户数据时,用户表的所有字段都从用户表中获取..但我不想包含密码和电子邮件地址,所以有没有办法只获取除密码和电子邮件地址?

问候.

cakephp cakephp-model

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