我一直在努力学习PHP,并且在制作自己的博客引擎方面进展顺利。当整合OAuth的时候,我碰到了this solution to encrypt keys。为什么这甚至是一堂课?或者为什么这些功能至少是静态的?
用法说,沿着这些线路做一些事情:
<?php
// a new proCrypt instance
$crypt = new proCrypt;
// encrypt the string
$encoded = $crypt->encrypt('my message');
echo $encoded."\n";
// decrypt the string
echo $crypt->decrypt($encoded) . "\n";
?>
我的问题是...为什么这是一个类?看起来像两个函数将会很好。我不明白为什么要实例化一个对象然后调用一些方法。这是OOP思维横行的例子,还是我在这里失踪的东西?
如果有一些令人信服的理由让它成为一个类,那么为什么这些方法不是静态的,以至于我只能拨打proCrypt::encrypt('my message');
?
这是相关的,因为我写的很多代码都使用静态函数,或者站在功能编程而不是OOP。如果我正在做一些可怕的错误,我想知道这件事。
具体来说,在这种情况下发现一个非常显著变量是*加密密钥*。就我理解PHP而言,看起来上面的代码总是使用密钥“keee”进行加密,除了作为演示之外,它并不是非常有用。当然,您可以使用两个参数的静态方法,但是这种设计允许将算法和密钥的组合作为一个单独的对象进行传递,无需其他参数即可进行加密/解密。 – 2011-04-14 17:46:32