ماژولار کردن فریمورک
با سلام
کسی از دوستان میدونه چطور میشه فریمورک را مثل جوملا یا وردپرس بصورت ماژولار تعریف کرد ؟
برخی از امکانات را به صورت ماژول طراحی کنیم و هرجا که نیاز شد تنها با نصب اون قادر به استفاده از آن باشیم
سلام
چیزی که در ادامه خدمتتون میگم بیس کار هستش که نیاز به بررسی بیشتر و بهتری مبنی بر نیازهای خودتون داره. اما این در کل یه شمای کلی از انجام کار بهتون میده.
اولین و مهمترین شرط برای ماژولار کردن یک فریمورک استفاده از مباحث Object Oriented هستش. یعنی بطور مثال شما باید یک کلاس پایه ای Controller مثلا به نام BaseController داشته باشید (ترجیحا از نوع abstract class) که باقی کلاسهای کنترلر باید از این کلاس ارث بری کنند. این کار رو باید برای model و همچنین view ها هم انجام بدید.
همچنین شما احتمالا نیاز به composer خواهید داشت تا پکیج های مختلف رو براتون مدیریت کنه. پس فریمورک باید با composer اصطلاحا آداپته بشه.
شما به طور مثال پوشه ای در روت فریمورکتون ایجاد میکنید به نام vendors و تمام پکیج های third party تون رو داخل این پوشه بوسیله composer قرار می دهید. سپس نیاز به یک فایل php دارید تا لیست پکیج هایی که وارد فریمورک شده اند رو داخل اون بنویسید به طور مثال:
[
'Excel' => Framework\Vendors\ExcelExprt::clss,
]
خوب پس با این تفاسیر حتما باید از namespace استفاده کنید تا مشکلی در نام گذاری فایلها و همچنین آدرس دهی آنها نداشته باشید.
سپس با استفاده از کامپوزر خیلی راحت پکیج ها لود شده و میتونید از اونها استفاده کنید. همچنین برای افزایش قدرت فریمورک میتونید از template engine هایی مثل twig و برای ORM از Doctrine استفاده کنید و یا خودتون اونها رو بنویسید.
این یک مثال ساده از بیس کار هستش. خیلی پیاده سازیش راحت نیست اما در عین حال خیلی سخت هم نیست.
در آخر این رو هم اضافه کنم که ماژولار کردن کدهاتون کاملا وابسته به اینه که کدهایی که مینویسید وابستگی بسیار کمی به هم داشته باشند تا اگر یک ماژول غیر فعال بشه باقی قسمت ها به خوبی به کار خود ادامه دهند.
امیدوارم مفید واقع بشه.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .