小编Ily*_*512的帖子

"替换"属性如何与作曲家一起使用?

那么" 替换 "属性如何与作曲家一起工作?我读过作曲家的文档,但仍然不理解.搜索更多信息没有回答我的问题.

当我在github 上查看Laravel/Framework上的composer.json文件时.我看不出替换会如何工作.有人可以向我解释这是如何工作的吗?变量"self.version"将等于什么?

replace package-managers composer-php

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

安装后无法使用指南针

我似乎无法使用 Vagrant文​​件使用指南针处理Vagrant .请参阅此处使用的其余bash脚本(已删除的repo)(如果要配置Vagrant Ubuntu Box,请参阅Vaprobash!).

因此,当我不得不使用时,我正在放弃一个gruntjs课程grunt server.唯一的问题是它需要一个更新的红宝石版本(1.9+我相信而不是1.8)它需要指南针.所以我通过安装RVM并安装最新的稳定版本解决了ruby部分.指南针应该很容易获得gem install compass,它似乎确实安装.但是当我输入时,compass -v我得到了以下错误:

/home/vagrant/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- sass/script/node (LoadError)
    from /home/vagrant/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rvm/gems/ruby-2.1.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches/browser_support.rb:1:in `<top (required)>'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rvm/gems/ruby-2.1.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:2:in `block in <top (required)>'
    from /home/vagrant/.rvm/gems/ruby-2.1.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:1:in `each'
    from /home/vagrant/.rvm/gems/ruby-2.1.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:1:in `<top (required)>'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rvm/gems/ruby-2.1.0/gems/compass-0.12.2/lib/compass/sass_extensions.rb:9:in `<top (required)>'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rvm/gems/ruby-2.1.0/gems/compass-0.12.2/lib/compass.rb:5:in `block in <top (required)>'
    from /home/vagrant/.rvm/gems/ruby-2.1.0/gems/compass-0.12.2/lib/compass.rb:4:in …
Run Code Online (Sandbox Code Playgroud)

ruby ubuntu rvm vagrant compass-sass

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

是否可以模拟受保护的属性和方法

是否可以使用PHP Mockery模拟受保护的属性?

我得到了一个带有方法的类,我将其称为"a",它在从同一个类的受保护属性中检索的数组上做了一些魔术.

受保护的属性由另一个方法填充b,在同一个类中.

我想a通过模拟受保护的属性来测试方法,所以我不必b首先使用类方法.

这可能吗?如果没有,我应该重构我的代码吗?或者还有其他方法(考虑最佳实践).

php phpunit protected mocking mockery

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

为 /admin 路径前缀添加基本身份验证

所以我试图向应用程序添加基本身份验证,但仅适用于 /admin/ 和 /admin/.*。

我正在使用带有 traefik 标签的 docker(-compose) 。到目前为止,我有闲置:

labels:
  - traefik.enable=true
  - traefik.port=8080
  - traefik.docker.network=proxy
  - traefik.app_admin.frontend.rule=Host:app.test;Path:/admin
  - traefik.app_admin.frontend.auth.basic=dev:password
  - traefik.app_frontend.frontend.rule=Host:app.test
Run Code Online (Sandbox Code Playgroud)

我想要实现的目标(以及我对上述内容的期望):

一个(未)认证的用户应该能够访问app.test. 当用户浏览到app.test/adminapp.test/admin/app.test/admin/#/app.test/admin/not/existing/path。它应该提示(要求)基本的身份验证凭据。

我不确定是否使用了正确的规则。这有点令人困惑(有 Path、PathPrefix,这些可以带或不带*前缀使用)。

我没想到的一件事是转到不存在的路径,例如app.test/admin/foobar/返回404-code 而不是首先提示输入凭据。

还有一种方法可以组合标签,并且还需要对所有包含(以)的请求进行基本身份验证app.test/api/

编辑:

我得到它的工作:

  - traefik.app_admin.frontend.rule=Host:app.test;PathPrefix:/admin
  - traefik.app_admin.frontend.auth.basic=dev:$$2y$$05$$3Zmx7gYh6mBIIm8O9HTR2uDkoYoRbTMfZpKup5NhmioKrU1YKgmqC
  - traefik.app_api.frontend.rule=Host:app.test;PathPrefix:/api
  - traefik.app_api.frontend.auth.basic=dev:$$2y$$05$$3Zmx7gYh6mBIIm8O9HTR2uDkoYoRbTMfZpKup5NhmioKrU1YKgmqC
  - traefik.app_frontend.frontend.rule=Host:app.test
Run Code Online (Sandbox Code Playgroud)

(用户名:dev 密码:password)

仍然想知道是否有更紧凑的方法来做到这一点。我可能只是使用 traefik.toml 代替。

traefik

5
推荐指数
0
解决办法
1037
查看次数

为什么e.stopPropagation()不起作用?

我正在阅读Aaron Gustafson写的一本名为"自适应网页设计"的书,因为我得到了一段我不理解的javascript.在研究时我发现了返回false和e.preventDefault之间的区别.我现在也对JavaScript的冒泡效果有了一点了解,并开始明白要停止冒泡,你可以使用e.stopPropagation()(在无至少的浏览器中).

我在小提琴里玩,但我无法让它工作.我认为它可能与bubbeling生效的方式有关(从root到元素然后回来?).

document.body.onclick = function (e) {
    alert("Fired a onclick event!");
    e.preventDefault();
    if ('bubbles' in e) { // all browsers except IE before version 9
        if (e.bubbles) {
            e.stopPropagation();
            alert("The propagation of the event is stopped.");
        } else {
            alert("The event cannot propagate up the DOM hierarchy.");
        }
    } else { // Internet Explorer before version 9
        // always cancel bubbling
        e.cancelBubble = true;
        alert("The propagation of the event is stopped.");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是小提琴:http://jsfiddle.net/MekZii/pmekd/(固定链接)编辑:我复制粘贴了错误的链接!现在修好了!

所以我想看到的是,当你点击锚点时,div上使用的onclick不会被执行(这不是一个实际案例,只是一个研究案例!)

javascript event-bubbling stoppropagation

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