如果您不熟悉内部结构,如何确定PHP代码的性能影响?有没有办法弄清楚你的代码是如何执行的(除了简单地加载测试)?我正在寻找内存使用,算法执行时间等内容.
也许乔尔会说,"学习C,然后阅读内部",但我现在没有时间学习C(尽管我很乐意,实际上).
我们的大部分开发都有一个带有Apache2,PHP5和MySQL 5的RedHat盒子.现在,我们有一个Rails客户端,我们需要在同一台服务器上设置Rails应用程序.我们可以用相同的Apache安装Ruby和Rails框架,还是应该避免这种情况?为什么或者为什么不?是否可以在单个V主机定义中将子域指向PHP或Ruby?
我们有一些项目涉及构建一个由50%自定义功能组成的应用程序,但是然后引入一个wiki,一个论坛和其他已经发明的"轮子"的组件,我们不会希望从头开始重写.
这些第三方应用程序通常具有自己的数据库,主题和身份验证系统.根据我的经验,让事情像单点登录或共同主题一样工作,或者在多个子应用程序中跨实体进行标记/搜索是非常具有挑战性的问题.这种集成项目有哪些最佳实践?
我们的方法,到目前为止,已经尝试仔细挑选你的组件,选择有明确定义的API,最好是通过HTTP(如REST或SOAP)的,虽然这并不总是可行的(我们还没有找到一个体面这样工作的论坛).人们可以给那些试图做到这一点的人提供建议,因为我怀疑这些天我们中的许多人越来越频繁了吗?
大约一年前,我选择了Scott Ambler's 重构数据库:进化数据库设计.我赢得了这样的想法,正如您可以使用TDD开发代码一样,您可能应该使用单元测试(至少)覆盖数据库,甚至在更改模式之前编写数据库测试,以便进行数据库工作也是TDD风格.
我非常喜欢这个想法,而且我一直在手工做这个(好的,有时我这样做)一段时间,只是编写正常的单元测试,碰巧连接到数据库并根据给定的模式文件检查其结构.但我没有找到任何可能有助于自动化此过程的良好数据库更改管理工具包.有谁知道吗?
我正在尝试测试一个管理数据库中数据访问的类(本质上是 CRUD)。我们使用的数据库库恰好有一个 API,您首先通过静态调用获取表对象:
function getFoo($id) {
$MyTableRepresentation = DB_DataObject::factory("mytable");
$MyTableRepresentation->get($id);
... do some stuff
return $somedata
}
Run Code Online (Sandbox Code Playgroud)
...你明白了。
我们正在尝试测试此方法,但模拟 DataObject 内容,以便 (a) 我们不需要实际的数据库连接来进行测试,并且 (b) 我们甚至不需要包含 DB_DataObject 库来进行测试。
然而,在 PHPUnit 中我似乎无法让 $this->getMock() 适当地设置静态调用。我有...
$DB_DataObject = $this->getMock('DB_DataObject', array('factory'));
Run Code Online (Sandbox Code Playgroud)
...但测试仍然显示未知方法“工厂”。我知道它正在创建对象,因为之前它说找不到 DB_DataObject。现在可以了。但是,没有办法吗?
我真正想做的是有两个模拟对象,一个也用于返回的表对象。因此,我不仅需要指定工厂是静态调用,而且还需要它返回我已经设置的一些指定的其他模拟对象。
我应该提一下,作为警告,我不久前在 SimpleTest 中做到了这一点(找不到代码)并且它工作得很好。
是什么赋予了?
[更新]
我开始意识到它与 Expects() 有关
我们在 Elastic Beanstalk 上运行我们的生产系统。我们希望能够通过自动缩放来利用 EBS 的工作线程层。不幸的是,由于 Laravel 队列处理的工作方式,Laravel 期望通过在您的服务器上启动 php 命令行进程来消耗所有队列。EBS 工作层不会以这种方式运行。AWS 安装了自己的侦听器守护程序,它可以通过本地 HTTP 调用拉取作业并将它们提供给您的工作人员。听起来很棒。不幸的是,我无法弄清楚如何从 Laravel 中的路由和控制器调用排队作业,而不是使用内置的 artisan 队列侦听器任务。任何有关如何实现这一目标的线索将不胜感激。
有没有办法让SVN从远程存储库检出另一个远程位置而不是本地文件系统?就像是:
svn co http://myrepository/svn/project ssh me@otherlocation.net:/var/www/project
Run Code Online (Sandbox Code Playgroud) 我们正在尝试调试我们在IIS上使用C#运行的一些Web服务代码.我是Windows编程新手,不知道如何查看输出到控制台.我们在代码中有一些写语句,但是当这个东西运行时我无法弄清楚如何查看控制台.救命?
我在这里做的事真的很蠢吗?我试图每分钟左右执行一次方法,永远,或直到我停止程序.
while(true) {
this.doSomethingPeriodically();
Calendar now = Calendar.getInstance();
int minutes = now.get(Calendar.MINUTE);
int resume = minutes + 1;
while (now.get(Calendar.MINUTE) < resume) {
// waiting for a minute
}
}
Run Code Online (Sandbox Code Playgroud)