روش استفاده از دیزاین پترن singleton در لاراول

ابتدا در 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);
    }
}

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *