gpt4 book ai didi

php - 在命名空间中使用 Laravel 4 Encrypter

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:01 24 4
gpt4 key购买 nike

我正在尝试在我创建的 namespace 内使用 Illuminate\Encryption\Encrypter;。代码确实存在于我的文件中。

问题:我希望 laravel 自动使用 'app/config/app.php' 下设置的 key 。但是施 worker 员要我用手正确设置它。

为了看看 Taylor Otwell 是如何处理这个任务的,我搜索了一个例子,看到在“Illuminate\Cache\DatabaseStore”下,它被设置为 $encrypter 作为实例,使用构造函数. Tylor 还使用函数 getEncrypter(); 如下:

/**
* Get the encrypter instance.
*
* @return \Illuminate\Encryption\Encrypter
*/
public function getEncrypter()
{
return $this->encrypter;
}

因为我想让我的类自动加载另一个类中的函数;我不能使用 IoC 容器。

这是我的函数和参数:

/**
* The encrypter to be used for several reasons.
*/
protected $encrypter = "Illuminate\Encryption\Encrypter";

/**
* Returns the encrypter.
*
* @return Object
*/
public function getEncrypter()
{
return $this->createEncrypter();
}

/**
* Creates a new encrypter object.
*
* @param $string $encrypter
* @return Obj $encrypter instance
*/
public function createEncrypter()
{
$class = '\\'.ltrim($this->encrypter, '\\');

return new $class;
}

/**
* Sets the crypter used by MyFacadeName
*
* @param Encrypter $encrypter
*/
public function setEncrypter($encrypter)
{
$this->encrypter = $encrypter;
}

有什么区别使解析器认为泰勒是对的而我是错的?我错过了什么?

最佳答案

如果你在 Laravel 上并且你不能访问 Facades 因为它们还没有被加载/初始化:

\Illuminate\Support\Facades\Config::get('app.key');

最后的手段可能是通过 $GLOBALS 访问 $app:

public function createEncrypter()
{
$class = '\\'.ltrim($this->encrypter, '\\');

return new $class($GLOBALS['app']['config']->get('app.key'));
}

关于php - 在命名空间中使用 Laravel 4 Encrypter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20406145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com