با سلام خدمت همه دانشجویان دوره
ما در این پروژه اومدیم و توسط 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 پرت میکنم تا مجبور به پیروی از اصل نام گذاری من بشه