روش استفاده از دیزاین پترن 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);
    }
}

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

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