بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ماژولار کردن فریمورک

مدیریت گفتگو
طاهر 10 سال پیش
آخرین تغییر: 10 سال پیش

با سلام

کسی از دوستان میدونه چطور میشه فریمورک را مثل جوملا یا وردپرس بصورت ماژولار تعریف کرد ؟

برخی از امکانات را به صورت ماژول طراحی کنیم و هرجا که نیاز شد تنها با نصب اون قادر به استفاده از آن باشیم

نظرات

سلام؛ ایده بسیار خوبی است. من هم قصد دارم در آینده این قابلیت رو پیاده سازی کنم. اما هنوز فرصت نکردم در موردش تحقیق کنم. دوستان لطفا راهنمایی کنند.

پاسخ‌ها 1

CodeMaster 10 سال پیش

سلام

چیزی که در ادامه خدمتتون میگم بیس کار هستش که نیاز به بررسی بیشتر و بهتری مبنی بر نیازهای خودتون داره. اما این در کل یه شمای کلی از انجام کار بهتون میده.

اولین و مهمترین شرط برای ماژولار کردن یک فریمورک استفاده از مباحث 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 استفاده کنید و یا خودتون اونها رو بنویسید.

این یک مثال ساده از بیس کار هستش. خیلی پیاده سازیش راحت نیست اما در عین حال خیلی سخت هم نیست.

در آخر این رو هم اضافه کنم که ماژولار کردن کدهاتون کاملا وابسته به اینه که کدهایی که مینویسید وابستگی بسیار کمی به هم داشته باشند تا اگر یک ماژول غیر فعال بشه باقی قسمت ها به خوبی به کار خود ادامه دهند.

امیدوارم مفید واقع بشه.

نظرات

طاهر 10 سال پیش
ممنون از راهنمایی خوبتون . درصورت امکان اگر لینک آموزش کاملتری از این موضوع دارید ارسال کنید (فارسی - انگلیسی )
mmahmoodi 10 سال پیش
سلام کدوم فریم وروک این قابلیت ها را داره . آیا کدینیتر هم بحث ماژولار بودن کد را به طور پیش فرض ساپورت میکنه ؟
CodeMaster 10 سال پیش
mmahmoodi@ والا تا اونجایی که میدنم اکثر فریمورک های قدرتمند مثل laravel , symphony , codeIginiter ماژولار هستند و مشکلی با این زمینه ندارند
CodeMaster 10 سال پیش
طاهر@ والا منابع خیلی دقیقی توی این زمینه نیست اما این لینک ها میتونه برای شروع خوب باشه: لینک http://code.tutsplus.com/tutorials/quick-tip-writing-simple-modular-code--wp-24609
CodeMaster 10 سال پیش
همچنین نگاه کردن به ساختار فریمورک های دیگه مثل لاراول و سیمفونی میتونه راهنمای خیلی خوبی برای اینکار باشه.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .