小编Bry*_* M.的帖子

将字符串转换为哈希符号的最佳方法

什么是(最快/最干净/直接)的方式将哈希中的所有键从字符串转换为符号?

解析YAML时这很方便.

my_hash = YAML.load_file('yml')
Run Code Online (Sandbox Code Playgroud)

我希望能够使用:

my_hash[:key] 
Run Code Online (Sandbox Code Playgroud)

而不是:

my_hash['key']
Run Code Online (Sandbox Code Playgroud)

ruby hashmap

241
推荐指数
17
解决办法
16万
查看次数

$(document).ready()还准备好了CSS吗?

我有一个在$(document).ready()上执行的脚本,它应该在我的布局中垂直对齐块元素.90%的时间,它没有问题.然而,对于额外的10%,两件事之一发生:

  • 进行定心所需的时间明显滞后,并且块元素跳入位置.这可能只是性能相关 - 因为页面大小通常很大,并且有大量的javascript一次执行.

  • 中心将完全搞乱,并且块元素将向下推得太远或不够远.似乎它试图计算高度,但是测量结果不合适.

有没有理由为什么在DOM-ready上执行脚本会没有将所有正确的CSS值注入到DOM中?(所有CSS都在<head>via a中<link>).

此外,这是导致问题的脚本(是的,它是从这里直接采取的):

 (function ($) {
    // VERTICALLY ALIGN FUNCTION
    $.fn.vAlign = function() {
      return this.each(function(i) {
        var ah = $(this).height();
        var ph = $(this).parent().height();
        var mh = (ph - ah) / 2;
        $(this).css('margin-top', mh);
      });
    };
  })(jQuery);
Run Code Online (Sandbox Code Playgroud)

谢谢.

javascript css jquery

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

远程调试不会在断点处停止

我在使用远程调试时xdebug没有在断点处停止时遇到问题(通过命令行运行脚本时一切正常).它将在程序的第一行中断,然后退出,而不是捕获任何断点.

它曾经工作正常,直到我切换到使用MacPorts for Apache和PHP.我已经尝试过多次重新编译(有几个版本),但没有骰子.

我正在使用PHP 5.3.1和Xdebug 2.1.0-beta3

我还尝试过至少3种不同的调试程序(MacGDBp,Netbeans和JetBrains Web IDE).

我的php.ini设置如下:

[xdebug]
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_port=9000
xdebug.remote_host=localhost
xdebug.idekey=webide
Run Code Online (Sandbox Code Playgroud)

当我记录调试器输出时,设置断点看起来像这样/;

<- breakpoint_set -i 895 -t line -f file:///Users/WM_imac/Sites/wm/debug_test.php -n 13 -s enabled -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="895" state="enabled" id="890660002"></response>

运行时,调试器将获取应用程序第一行的上下文,然后发送分离和停止消息.

但是,启动调试器时会输出此行.

<- feature_get -i 885 -n breakpoint_types -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_get" transaction_id="885" feature_name="breakpoint_types" supported="1"><![CDATA[line conditional call return exception]]></response>

"行条件调用返回异常"是否意味着什么?

php debugging xdebug

36
推荐指数
5
解决办法
4万
查看次数

PHPUnit,模拟接口和instanceof

有时在我的代码中,我会检查一个特定的对象是否实现了一个接口:

if ($instance instanceof Interface) {};
Run Code Online (Sandbox Code Playgroud)

但是,在PHPUnit中创建所述接口的模拟,我似乎无法通过该测试.

 // class name is Mock_Interface_431469d7, does not pass above check
 $instance = $this->getMock('Interface'); 
Run Code Online (Sandbox Code Playgroud)

我知道有一个名为Interface的类与实现Interface的类不同,但我不知道如何处理它.

我是否被迫模拟实现Interface的具体类?难道这不会破坏使用接口进行移植的目的吗?

谢谢

php phpunit unit-testing mocking

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

在招聘时测试HTML/CSS/Javascript技能

聘请前端开发人员时,您应该测试哪些具体技能和实践?什么是评估他们的HTML,CSS和Javascript技能的好指标?

显然,无表格语义HTML和纯CSS布局可能是关键技能.但具体技术呢?他/她是否应该毫不费力地模拟多列布局?CSS sprites?等高(或人造)柱?HTML标签选择是否重要(即过分依赖<div>)?他们应该能够解释(用语言)浮标是如何工作的吗?

那javascript技能怎么样?框架体验(jQuery,Prototype等)有多重要.今天?

显然,他们将要处理的职位和网站的详细信息是所需技能的最佳指示.但我想知道在为候选人创建测试时,人们可能会考虑哪些特定技能成为交易破坏者(或制造者).

html javascript css frontend

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

PHPUnit:存根方法未定义

我肯定错过了什么.我正在尝试在PHPUnit中的类上存根方法,但是当我在模拟对象上调用该方法时,它告诉我该方法是未定义的.

存根示例类:

namespace MyApp;

class MyStubClass 
{
   public function mrMethod()
   {
     // doing stuff
   }   
}
Run Code Online (Sandbox Code Playgroud)

为了存根,我写道:

// specifying all getMock() args to disable calling of class __construct()
$stub = $this->getMock('MyStubClass', array(), array(), 'MockMyStubClass', false, false, false);
$stub->expects($this->any())
     ->method('mrMethod')
     ->will($this->returnValue('doing stuff'));
Run Code Online (Sandbox Code Playgroud)

但是在调用stubbed方法时,我得到一个异常:

$stub->mrMethod();
//PHP Fatal error:  Call to undefined method MockMyStubClass::mrMethod()
Run Code Online (Sandbox Code Playgroud)

我在PHP 5.3.0中使用PHPUnit 3.4.3.

我注意到的另一个小问题是,如果在getMock()方法中指定名称空间会导致类加载异常,因为双重名称空间:

$stub = $this->getMock('MyApp\MyStubClass');
// Fatal error:  Class 'MyApp\MyApp\MyStubClass' not found
Run Code Online (Sandbox Code Playgroud)

这让我觉得很奇怪(并且getmock()不会接受带有反斜杠的命名空间).我能想到的唯一原因可能是因为这个类是在自动加载器中注册的吗?

有什么想法吗?

php phpunit unit-testing mocking

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

在Ruby中生成HTTP响应

我正在开发一个可以访问Web服务的应用程序.我想开发一个代理类,它返回来自服务的虚假响应,所以在我开发/测试应用程序的其他部分时,我不必经常遇到请求.

我的应用程序期望通过Net :: HTTP生成响应.

response = Net::HTTP.get(URI.parse('http://foo.com'))

case response
when Net::HTTPOK
  # do something fun

when Net::HTTPUnauthorized
  # you get the idea
Run Code Online (Sandbox Code Playgroud)

我怎样才能制作一个响应对象,给它所有正确的标题,返回一个正文字符串等?

response = ProxyClass.response_object

case response
when Net::HTTPOk
  # my app doesn't know it's being lied to
Run Code Online (Sandbox Code Playgroud)

谢谢.

ruby web-services http

13
推荐指数
3
解决办法
9784
查看次数

开发/测试Twitter应用程序而不会抨击API

我目前正在开发一个适用于Twitter的应用程序,但在开发/测试时(特别是那些不太依赖真实Twitter数据的部分),我想避免经常访问API或发布垃圾推文.

人们使用一般策略来简化API(缓存除外)吗?我正在考虑滚动我自己的库,基本上拦截传出请求并返回模拟响应,但我想确保我没有遗漏任何明显的第一个.

twitter web-services

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

PHP:当Magic Quotes为ON时,如何(正确)删除数组中的转义引号

如您所知,当Magic Quotes为ON时,单引号会在值和键中转义.大多数在运行时删除Magic Quotes的解决方案只能取消值,而不是键.我正在寻找一种能够解决关键和价值观的解决方案......

我在PHP.net上发现了这段代码:

$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process))
{
    foreach ($val as $k => $v)
    {
        unset($process[$key][$k]);
        if (is_array($v))
        {
            $process[$key][stripslashes($k)] = $v;
            $process[] = &$process[$key][stripslashes($k)];
        }
        else
        {
            $process[$key][stripslashes($k)] = stripslashes($v);
        }
    }
}
unset($process);
Run Code Online (Sandbox Code Playgroud)

但是我不喜欢"&"引用和数组,因为我在过去遇到了像这样的 bug ...

有没有一种"更好"的方式在运行时使用魔术引号(键和值)而不是上面的方法?

php magic-quotes

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

总是使用jquery选择器或将它们缓存在变量中?

jQuery选择器很精彩,但有时我会发现自己一遍又一遍地输入它们,这有点烦人.

 $('#mybutton').click(function() {
    $('#message-box').doSomething();
    $('#message-box').doSomethingElse();
    $('#message-box').attr('something', 'something');
 });
Run Code Online (Sandbox Code Playgroud)

所以我经常喜欢在变量中缓存我的对象:

$('#mybutton').click(function() {
    var msg = $('#message-box');
    msg.doSomething();
    msg.doSomethingElse();
    // you get the idea 
});
Run Code Online (Sandbox Code Playgroud)

这两种模式之间有任何利弊吗?有时感觉创建变量是额外的工作,但有时它会节省我的手指很多打字.是否有任何记忆问题需要注意?选择器在使用后是否可以很好地清理,而我糟糕的编码习惯往往会使存储器中的变量更长?

这不会让我夜不能寐,但我很好奇.谢谢.

编辑:请看这个问题.它基本上要求相同的东西,但我更喜欢答案.

javascript performance jquery

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