روش استفاده از دیزاین پترن singleton در لاراول
تاریخ انتشار:
26 اسفند 1401
ابتدا در serivceProvider درون متد register به صورت زیر کلاس مورد نظر را تعریف میکنیم مزیت استفاده از singleton این است که فقط برای یکبار new میشود و هر جا میتوان از آن خیلی ساده استفاده کرد. این امر موجب بهینه سازی مصرف Ram و ارتقا سرعت نیز میگردد
$this->app->singleton(Hasher::class, function () {
return new Hasher();
});
و سپس بدین شکل از آن استفاده میکنم
\Hasher::generate()
به طور مثال در کلاس Hasher
<?php
namespace Gallib\ShortUrl;
class Hasher
{
/**
* @var int
*/
protected $length = 6;
public function setLength(int $length): self
{
$this->length = $length;
return $this;
}
/**
* Generate a random hash.
*
* @return string
*/
public function generate(): string
{
$characters = str_repeat('abcdefghijklmnoKLMNOPQRSTUVWXYZ0123456789', $this->length);
return substr(str_shuffle($characters), 0, $this->length);
}
}