۱ آرمین صادقیان
ریفکتور کردن متد findFilter
جامعه پی اچ پی ایجاد شده در ۲۳ تیر ۱۴۰۱

سلام. وقت بخیر

برای رعایت اصول سالید و کدنویسی تمیز بهتر نیست متد findFilter و توی کلاس جدا بنویسیم؟ من یه کلاس utility ساختم به اسم Filter و داخلش متد find و نوشتم :

final class Filter
{
    private const BASE_NAMESPACE = "App\\Http\\Controllers\\Filters\\\\";
    public static function find(string $className, string $methodName)
    {
        $className = self::BASE_NAMESPACE . (ucfirst($className) . 'Filter');
        if (!class_exists($className)) {
            return null;
        }
        $object = new $className;
        if (!method_exists($object, $methodName)) {
            return null;
        }
        return $object->{$methodName}();
    }
}

و توی ProductsController اومدم و این متد و صدا زدم.

این روش از نظر کدنویسی تمیز بهتر نیست؟

سلام آرمین عزیز

میتونی از trait‌ها هم استفاده کنی توی اینجور مواقع

اما توی تاپیک قبلی راه اصولیش رو بهت گفتم، بهتره برای سرچ و فیلتر از scope‌ها در لاراول استفاده کنید.

این نکته رو هم بگم که هدف این دوره کد نویسی تمیز با رعایت تمامی استاندارد‌ها نبوده و هدف چیز دیگه ای هست.

موفق باشید. ?


بهترین پاسخ
محمد گازری ۲۳ تیر ۱۴۰۱، ۰۴:۵۶