چرا دروپال 8 از سیمفونی استفاده می کند؟

همانطور که میدانید معماری و روش برنامه نویسی دروپال 8 به طور کلی تغییر یافته بطوریکه با دشواریهای زیادی برای توسعه دهندگان دروپال همراه بوده است. البته این را در نظر بگیرید که دروپال 8 یک CMS کاملا حرفه ای و مدرن امروزی است و این مشکلات و عدم وجود اطلاعات کافی کاملاً طبیعی است. بطور مثال پس از گذشت ماه ها از انتشار اولین نسخه دروپال 8، توسعه دهندگان افزونه معروف webform همچنان با مشکلات زیادی روبرو هستند و نتوانسته اند یک نسخه پایدار از این افزونه برای دروپال 8 ارائه کنند. اصلی ترین دلیل پیچیده بودن دروپال 8 ، تغییر عظیم به سمت برنامه نویسی شیء گرا است که مطمئنا مزیت های آن را هم میشناسید. بهر حال ما با مشکلات زیادی در استفاده از دروپال 8 روبرو هستیم که برای حل این مشکلات باید دانش خود را بالا ببریم.

آشنایی با فریم ورک:

فریم ورک به یک چهارچوب در زبان های برنامه نویسی گفته می شود که برنامه نویسان را ملزم به رعایت اصولی کلی نموده و مجموعه‌ای از ابزارها، کتابخانه‌ ها، قرارداد ها و بهترین شیوه‌ ها را بهمراه دارد. بهتر است با یک مثال شما را با فریم ورک بیشتر آشنا کنیم. فرض کنید میخواهید یک آپلود فایل به برنامه تحت وب خود اضافه کنید. چقدر زمان نیاز دارید کدهای آن را بنویسید ، امنیت آنرا تامین کنید و ضعف ها و باگ های آن را شناسایی و رفع کنید؟ اگر چیزی را از قلم بیاندازید، ممکن است امنیت آینده کل کدهای شما را بخطر بیاندازد! اینجاست که فریم ورک این دغدغه ها را از میان برداشته و شما را از درگیری با مسائل کوچک ابتدایی دور می کند. هزاران برنامه نویس متخصص در تهیه فریم ورک ها نقش دارند و تمامی کدهای موجود در آن‌ها را از جوانب مختلف بررسی میکنند. شما از این قطعه کدها در برنامه‌های خود استفاده کرده و بجای اتلاف وقت بروی کدهای ابتدایی ، توانایی خود را بروی ساختار برنامه متمرکز میکنید. با این روش برنامه‌های فوق‌العاده قوی ، پر کاربرد و امن تولید خواهید نمود.

مروری بر سیمفونی:

سیمفونی نیز یک فریم ورک معروف و قوی در زبان برنامه نویسی پی اچ پی است که قابلیت پیاده سازی انواع برنامه های تحت وب را فراهم می کند. اشتباه نکنید سیمفونی یک سیستم مدیریت محتوا نیست و نمیتواند برای مدیریت یک سایت استفاده شود بلکه باید کدهای لازم برای تهیه سیستم مدیریت محتوا توسط آن نوشته شود. از آنجایی که دلیل استفاده از فریم ورک ها در هر برنامه ای پایداری و امنیت آنهاست، دروپال نیز سالها قدرتمند ترین و منعطف ترین فریم ورک را بررسی و انتخاب کرده است. سیمفونی از اجزای مختلفی تشکیل شده که در هسته قرار گرفته و بصورت سرویس ها و بسته ها ارائه شده اند که برنامه نویسان میتوانند از آنها در ساخت برنامه های خود استفاده کنند. سرویس مسیریابی، سرویس ایمیل ، سرویس آپلود ، سرویس اعتبار سنجی و ...
باید اشاره کنیم که دروپال تنها از برخی از سرویس های پر کاربرد و معروف سیمفونی استفاده می کند که در ادامه توضیح داده شده اند:
Debug: سرویس اشکال زدایی
Process: سرویس پردازشگر
Routing: سرویس مسیریابی
Serializer: سرویس کد گزاری XML/JSON بجای تابع drupal_json_decode در دروپال
Yaml: شناسایی فایل های تنظیماتی
Http Foundation: سرویس مدیریت درخواست و پاسخ
Event Dispatcher: سرویس توزیع عملیات ها
DevendencyInjection: سرویس مدیریت وابستگی ها

دروپال 8 و سیمفونی:

دروپال از هسته سیمفونی استفاده نمی کند و قابلیت‌هایی فراتر از هسته سیمفونی را با خودش بعنوان Drupal API ارائه می کند. دروپال خود یک فریم ورک است و تمایلی ندارد بسته های نرم افزاری خود را حذف کرده یا آنها را با سیمفونی به اشتراک بگذارد. شاید بپرسید چرا دروپال از هسته سیمفونی استفاده نمی کند ؟ در پاسخ باید گفت با آنکه هسته سیمفونی بسیار پر کاربرد و یکی از بهترین انتخاب ها برای پیاده سازی هر نرم افزار تحت وب به شمار می رود ، اما برای سیستم مدیریت محتوای بزرگ و پیچیده ای همانند دروپال ، انتخاب مناسبی نخواهد بود. دروپال توسط DrupalKernel تمامی افزونه ها و سرویس ها را (به روشی متفاوت از سیمفونی) فراخوانی کرده و آنها را به HttpKernel برای پردازش ارسال می کند. این دقیقا همان کاری است که هسته سیمفونی انجام می دهد با این تفاوت که دروپال 8 اجزا و کدهای هسته خود را در کنار سرویس های پر کاربرد سیمفونی استفاده می کند. دروپال میگوید با استفاده از سرویس های سیمفونی تمرکز توسعه دهندگانش را از کدنویسی های ابتدایی کاهش داده و تمامی انرژی آنان صرف قدرت بخشیدن به امکانات دروپال خواهد شد. کاری که شاید بسیاری از سیستم های مدیریت محتوای معروف جهان نتوانند به راحتی و به این زودی‌ها آن را انجام دهند.

نسخه دروپال: 
نیرو گرفته از دروپال