是否可以在浏览器中请求生成客户端密钥对,并将公钥发送到服务器CA以进行透明签名?然后在用户的浏览器中安装签名证书?
场景:
客户端下次连接到服务器时,将根据客户端证书验证其身份.
如果服务器可以使用密码加密强制/提示客户端保护其私钥,那将是很好的.
我已经看过使用java applet进行此任务的网上银行业务.是否可以使用本机浏览器功能来实现?Apache/PHP或Node.js解决方案将受到欢迎.
根据http://emberjs.com/guides/object-model/classes-and-instances/,需要使用getter和setter访问属性:
访问对象的属性时,请使用get和set访问器方法.
确保使用这些访问方法; 否则,计算属性不会重新计算,观察者不会触发,模板也不会更新.
我知道在更改属性时需要使用setter让Ember知道更改,以便更新绑定,但是读取属性呢?
来自http://emberjs.com/guides/object-model/classes-and-instances/的示例
App.Person = Ember.Object.extend({
say: function(thing) {
var name = this.get('name');
alert(name + " says: " + thing);
}
});
var yehuda = App.Person.create({
name: "Yehuda Katz"
});
yehuda.say("Yes");
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,this.get('name')用于访问属性name,但是方法say被定义为类的属性,App.Person并且可以通过点表示法直接访问.虽然方法和属性之间存在明显的用法差异,但在JavaScript中,两者的实现没有区别.如果我替换this.get('name'),该示例仍然有效this.name.
我绝对想坚持这里的最佳实践,每次都使用getter/setter,但我想了解Ember.js的内部:)
我有非常简单的PHP界面:
interface HasFormattableNumber {
function setNumber();
function setFormat();
function formatNumber();
}
Run Code Online (Sandbox Code Playgroud)
接下来,我有许多实现此接口的类.不幸的是,这些类不能有一个共同的祖先(可能是一个只实现这些方法一次的抽象祖先).该课程基本上如下:
class A implements HasFormattableNumber {
private $_number;
private $_format;
public function setNumber($n) {
$this->_number = $n;
}
public function setFormat($f) {
$this->_format = $f;
}
public function formatNumber() {
return sprintf($this->_format, $this->_number);
}
}
Run Code Online (Sandbox Code Playgroud)
单元测试看起来像这样:
class ATest extends \PHPUnit_Framework_TestCase {
public function testShouldFormatNumber() {
$a = new A();
$a->setNumber(123);
$a->setFormat("xx-%d");
$this->assertEquals("xx-123", $a->formatNumber());
}
}
Run Code Online (Sandbox Code Playgroud)
是否有可能以某种方式为所有接口实现重用此测试用例?我知道我可以将testShouldFormatNumber()复制并粘贴到我的所有单元测试中,但如果可能的话,我更喜欢将它保存在一个地方.
php Traits会以任何方式提供帮助吗?(但我还没有使用php 5.4)