我试图在Laravel中添加一些功能,例如加密或解密值,格式化段落等
目前我已将我的功能添加到控制器类中,如此
public static function encrypt_decrypt($action, $string) {
$output = false;
$encrypt_method = "AES-256-CBC";
$secret_key = 'secret';
$secret_iv = 'secret_2';
// hash
$key = hash('sha256', $secret_key);
// iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning
$iv = substr(hash('sha256', $secret_iv), 0, 16);
if ($action == 'encrypt') {
$outputs = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
$output = base64_encode($outputs);
} else if ($action == 'decrypt') {
$output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
}
return $output;
}
现在我正在调用我的函数
{{ App\Http\Controllers\Items::encrypt_decrypt("encrypt", 'user_name') }}
上述方法完美无缺,但对我来说似乎并不好看,因为编写整条路径很困难。
答案 0 :(得分:2)
导入课程,然后:
namespace Foo\Bar;
use App\Http\Controllers\Items;
$encrypted = Items::encrypt_decrypt(
'encrypt',
'user_name'
);
供参考,见:
答案 1 :(得分:0)
首先,你应该在一个单独的类中使用逻辑,其次,你最好将你的函数定义为PUBLIC而不是公共静态。
然后你需要它(就像你的控制器)你只需用$ this调用...当然你必须在控制器中构建我们的构造函数。 它会是这样的:
public function __construct(YOURMODEL $someVariable)
{
return $this->$someVariable = $someVariable;
}
$this->$someVariable->YourFunction ;