标签: cakephp

CakePHP 2.1.x - 在AppController中运行没有任何模型的查询

我试图在AppController上运行一个没有与之关联的Model的表.我不想使用模型,因为这个查询会在每个请求上触发,我猜使用模型会使它慢一点.

我在一个论坛中发现,这可以通过CakePHP 1.3中的以下代码实现

$db = ConnectionManager::getInstance();
$conn = $db->getDataSource('default');
$conn->rawQuery($some_sql);
Run Code Online (Sandbox Code Playgroud)

但这在CakePHP 2.1.3中不起作用.任何帮助,将不胜感激.谢谢 :)

cakephp cakephp-2.0 cakephp-2.1

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

CakePHP与Ruby on Rails有何不同?

不久之后,我几乎从未听过CakePHP这个词而没有听到Rails这个词.这两个框架是否主要基于它们如何遵循MVC模型,或者它们是否具有其他重要的相似性/差异?

对我来说,Rails的主要吸引力之一就是使用Ajax是多么容易.CakePHP也是如此吗?

php comparison cakephp ruby-on-rails

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

18
推荐指数
3
解决办法
2万
查看次数

CakePHP的良好数据库迁移?

我一直在为CakePHP尝试一些迁移脚本,但是我遇到了所有形式或其他形式的问题.

请告诉我关于您使用Live并了解作品的Cake的迁移选项.

我想要以下"功能":

  • 支持CakePHP 1.2(例如,当1.3稳定并且我的应用程序迁移到新的代码库时,CakeDCs迁移将只是一个选项)
  • 支持(或至少不停止)具有不同数据库配置的模型.
  • 支持app/models子文件夹中的模型
  • 支持插件中的模型
  • 支持不符合Cake约定的表(我有一些特殊的表,没有一个主键字段,需要保留它们)
  • 通过Capistrano和Git自动部署可以很好地发挥作用.

我不需要rails样式的版本化文件一个git版本化的模式文件,它与现有模式进行实时比较.那就是:我喜欢Cake中的SchemaShell,除了它与我上面的大部分要求不兼容.

我看过并测试过:

database migration cakephp cakephp-1.2

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

是否有CakePHP离线手册

曾经有,但似乎没有任何直接联系.一点点挖掘揭示了一些我认为分享有用的答案.

这些是一页中手册的链接 - 对于离线使用或使用Dardo Sordi Bogado的构建脚本创建PDF非常有用:http://rapidshare.com/files/218826372/manual-builder.zip

1.2手册在一页 http://book.cakephp.org/complete/3/The-Manual

1.3手册在一页 http://book.cakephp.org/complete/876/The-Manual

另请参阅此主题:http: //groups.google.com/group/cake-php/browse_thread/thread/5f45c1d0 ...

offline cakephp manual

18
推荐指数
2
解决办法
7985
查看次数

在Eclipse中使用CakePHP .ctp语法突出显示

为什么CakePHP决定构建他们自己的文件格式而不是.tpl是超出我的...尽管如此,我无法在Eclipse中使用语法高亮...我遵循了本指南:http: //planetcakephp.org/aggregator/items/5452-opening-ctp-file-with-syntax-highlight-in-eclipse(死链接)但它不起作用,我看到有关此文件的不支持的内容类型的错误.我已经为这个文件类型添加了PHP编辑器的关联,它仍然显示了问题.

关于如何使语法高亮显示工作的任何想法?

eclipse cakephp

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

在cakephp中按字段排序

我在cakephp做项目.

我想在cakephp Style中写下面的查询.我写了50%.请帮我

$这个 - >登录 - >找到( '全部')

SELECT * FROM login  
ORDER BY FIELD(profile_type, 'Basic', 'Premium') DESC;
Run Code Online (Sandbox Code Playgroud)

php cakephp sql-order-by

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

CakePHP - 如果是INSERT或UPDATE,如何检查beforeSave

在我的模型beforeSave方法中,如何检查保存操作是INSERT还是UPDATE?

我想添加到模型数据,但只有在插入新行时才会添加.

cakephp cakephp-2.0

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

很长时间到空php文件的第一个字节值

几个月前我有这样的问题.现在为了隔离问题,我尝试了一种新的方法.我把一个空文件放到我的服务器上.

文件名是"foobar.php".其内容如下:

<?php
echo "hello world";
Run Code Online (Sandbox Code Playgroud)

但是当我尝试进入example.com/foobar.php时,我明白了

DNS 203毫秒
连接3.33秒
发送0毫秒
到第一个字节的时间17.35秒
接收1毫秒总加载时间20.88秒

然后我把另一个名为"foobar.txt"的文件.其内容如下:

hello world<br/>
Run Code Online (Sandbox Code Playgroud)

foob​​ar.txt的加载时间约为0.2秒.

这个网站是在共享主机内,所以我无法获得root Linux访问权限.我试图找出是什么让我的网站变慢.

  • 当我得到这些结果时,我的网站有60个访问者.并且它们在活动时发送AJAX请求.当它们处于活动状态时,它们几乎每3秒发送一次AJAX请求.
  • 一般来说,我的网站每秒有5-20个请求.
  • 我的托管服务提供商表示没有CPU过载,一般来说非常低.
  • 我向托管公司询问了Apache的限制.我得到整个共享服务器的这个值:

MaxClients 300
MaxRequestsPerChild 4000
ThreadsPerChild 25

  • example.com/mybigpage.phpexample.com/foobar.php页面几乎同时打开.
  • 如果页面有txt,jpeg或其他扩展名,则会立即打开它们.如果扩展名为php,则打开速度非常慢.
  • CakePHP将会话文件存储在"/ httpdocs/app/tmp/sessions"文件夹中.会话文件在创建两个小时后删除.现在该文件夹中有3653个文件.最早的文件是在2,5小时前创建的.
  • 在我的配置中,PHP处理程序是Apache模块mod_php

新编辑: 我和我的托管公司谈过.并告诉他们"foobar.php"几乎在20秒内打开.虽然该文件根本没有代码.他们告诉我他们把"foobar.php"放到我们使用同一台服务器的其他网站上.我也试过"othersite.com/foobar.php".它立刻打开了.但"mysite.com/foobar.php"几乎在15秒内开启.什么会造成这种行为?我们对其他网站使用相同的PHP配置,但它们会立即打开..可以是因为我的.htaccess规则吗?还是其他的事情?

新Edit2: 我的提供商告诉我服务器内没有"apd.so"文件.所以我好像不能使用APD.

我应该寻找什么才能找到瓶颈?
什么会限制我的网站?


附加数据:来自phpinfo,我得到了这个:

'./configure'' - prefix =/usr/local/lsws/lsphp5'' - build = x86_64-redhat-linux-gnu'' - host = x86_64-redhat-linux-gnu'' - target = x86_64-redhat-linux-gnu'' - sysconfdir =/etc'' - datadir =/usr/share'' - includenid =/usr/include'' - libdir =/usr/lib64'' - libdcdir =/usr/libexec'' …

php apache .htaccess cakephp mod-php

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

CakePHP 3:模型单元测试失败 - "重复键值"

我正在使用Postgres(我认为与问题有关)和CakePHP 3.

我有以下单元测试,只是检查以确保模型可以保存有效的数据集.当我运行以下测试时,使用标准的"bake'd"模型单元测试,我得到以下错误.

我认为这是问题所在:

我们正在使用灯具来添加一些基础数据.这是我认为可能导致问题的唯一地方.为此添加信任,在单元测试运行时,我运行以下命令以获取下一个自动递增id值,并返回1,即使它在非测试DB中返回了正确的数字.Select nextval(pg_get_serial_sequence('agencies', 'id')) as new_id;

单元测试:

public function testValidationDefault()
{
    $agencyData = [
        'full_name' => 'Agency Full Name',
        'mode' => 'transit',
        'request_api_class' => 'Rest\Get\Json',
        'response_api_class' => 'NextBus\Generic',
        'realtime_url_pattern' => 'http://api.example.com',
        'routes' => '{"123": {"full_route": "123 Full Route", "route_color": "#123456"}}'
    ];

    $agency = $this->Agencies->newEntity($agencyData);
    $saved = $this->Agencies->save($agency);
    $this->assertInstanceOf('App\Model\Entity\Agency', $saved);
}
Run Code Online (Sandbox Code Playgroud)

错误:

PDOException: SQLSTATE[23505]: Unique violation: 7 ERROR:  duplicate key value violates unique constraint "agencies_pkey"
DETAIL:  Key (id)=(1) already exists.
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情

  • 将相同的代码复制到控制器中,并在表中成功添加了实体.
  • 添加ID为200.出现相同的错误.

更新1

这个夹具确实为每个记录设置了ID字段.从夹具中删除它们确实有效,但它会破坏依赖于某些关系数据的其他单元测试.

postgresql unit-testing cakephp cakephp-3.0

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