🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ بهنام مرادی
یکسان سازی نام کلاس ها
امیر صالحی حل شده توسط امیر صالحی

با سلام خدمت همه دانشجویان دوره

ما در این پروژه اومدیم و توسط Interface و abstract کلاس یک سری قانون تعریف کردیم که کلاس‌های فرزند باید از اون پیروی کنند.

نمونه بارز این داستان هم متود export بود که هر کلاسی به سبک خودش اون رو تعریف میکرد ولی نام یکسانی داشت.

ولی تو فایل process اومدیم اسم کلاس هارو هم بر طبق یک اصل در نظر گرفتیم که به صورت زیر باشن

JsonExporter
PdfExporter
TextExporter

ولی خب هیچ جایی این اصل تعریف نشده و سفت و سخت نیست و یک قانون ضمنی که باید رعایت بشه

فردا روزی یک برنامه نویس دیگه از نام دیگری برای کلاس استفاده کنه مثل exportToCsv  کد ما دچار اشکال میشه.

تمام اینهارو گفتم که سوال کنم ایا میشه یک قانون برای تعریف نام کلاس درون کد‌ها نوشت ؟

که بشه این مورد رو هم با کدنویسی هندل کرد.

با تشکر از همراهی شما عزیزان

سلام و احترام

میتونید برای مثال اگه نام کلاسی که داده بودن پیدا نشد یک Exception پرتاب کنید تا مجبور به رعایت نوع نام گذاری بشن، به نمونه کد زیر یه نگاه بندازید

 public function findProvider()
    {
        $class_name = "App\Http\Controllers\Admin\Prices\PriceManagement\Providers" . $this->requestedProvider . 'Provider';
        if(!class_exists($class_name))
            throw new ProviderDoesNotExistException('Provider does not exist');
        $provider = new $class_name;
        return $provider;
    }

این کدی که میبینید من خودم توی پروژه ای که دارم روش کار مکینم استفاده کردم، اون نام کلاسی که داده بودن پیدا نشد یه Exception پرت میکنم تا مجبور به پیروی از اصل نام گذاری من بشه

 

 

بهترین پاسخ
امیر صالحی ۲۶ تیر ۱۴۰۰، ۱۷:۴۵