سیمفونی

فریم ورک سیمفونی یکی از محبوب‌ترین فریم ورک های زبان PHP است که تقریبا از سال ۲۰۰۵ وارد دنیای طراحی وب شده است. اینفریم ورک به صورت متن باز و با معماری MVC منتشر شده و به طراحان وب این امکان را می‌دهد تا مطابق با سلیقه خود، از آن در طراحی برنامه‌های تحت وب استفاده کنند.

اگر تصویر بالا را مشاهده کنید، متوجه روند رو به رشد Symfony از سال ۲۰۰۴ تا به حال در تمام دنیا خواهید شد. این که یک فریم ورک در حدود ۱۲ سال فعالیت، همچنان جزو یکی از فریم ورک‌های محبوب بوده و بتواند به روند رو به رشد خودش ادامه دهد، مسئله‌ای نیست که بتوان به راحتی از کنار آن گذشت. 

در ابتدا درباره کامپوننت باید توضیحی مختصر بدهیم. یکی از تعریف‌هایی که از این واژه در زبان فارسی شده است، مفهوم «ترکیب کننده» است. بنابراین کامپوننت‌ها یکی از ابزارهای مهم در طراحی وب هستند که درواقع ترکیبی از چندین ماژول یا بهتر است بگوییم چندین ابزار هستند که سرویس‌های متعددی را در اختیار برنامه‌نویسان قرار می‌دهند. حال تصور کنید که کامپوننت چقدر می‌تواند در وقت و هزینه‌ی یک برنامه‌نویس صرفه‌جویی کند. Symfony هم با داشتن مجموعه‌ای از کامپوننت‌های مختلف می‌تواند قدرت خود را به رخ دیگر رقبا بکشد. رقبایی همچون لاراول  که امروزه از Symfony و کامپوننت‌های آن بهره می‌برند.

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

حتی لاراول که یکی از محبوب‌ترین و بهترین فریم ورک‌های زبان PHP است هم در بخش‌هایی از امکانات Symfony بهره می‌برد. همانطور که می‌دانید یکی از برترین سیستم‌های مدیریت محتوا در دنیا یعنی Drupal هم از فریم ورک سیمفونی استفاده می‌کنند، می‌توان به عنوان یکی از دلایل محبوبیت و قدرت این فریم ورک به حساب آورد.

اگر به دنبال یک فریم ورک برای پروژه‌های طولانی مدت و بزرگ خود هستید، Symfony می‌تواند به شما در این مسیر کمک کند. داشتن انجمن‌های فعال، خیال شما را از بابت داشتن یک پشتوانه‌ی آموزشی که به مشکلات شما در اسرع وقت پاسخ دهد را راحت می‌کند ضمن اینکه وجود کامپوننت‌ها می‌تواند حس قدرت و پایداری را به پروژه شما هدیه داده و دغدغه شما را مبنی بر توسعه‌ی پروژه‌ای که در دست دارید را مرتفع کند. 

تولید نرم افزاهای بزرگ کاری دشوار، هزینه بر و زمان بری است . از این رو تولید نرم افزار خود یک پروژه است که باید با استفاده از دانش های مدیریت پروژه ، مدیریت شود.
هدف نهایی تمامی فعالیتها در پروژه های نرم افزاری تولید و پیاده سازی نرم افزار است.
در تولید نرم افزارهای تجاری فعالیت هایی وجود دارند که برای برنامه نویس تکراری است اما مهم . از آن جمله کار با پایگاه داده و ایجاد فرم ها، مدیرت کار کاربران و دسترسی ها و امنیت ، ارسال ایمیل ، ایجاد قالب صفحات و ... این گونه فعالیتها aمعمولا زمان بر است اما هیچ بار ارزشی برای برنامه نویس ندارد. اگر ابزاری فراهم باشد که این کارها را خودکار انجام دهدف برنامه نویس می تواند فارغ از این گونه دغدغه ها ذهن و زمان خود را روی منطق برنامه خود متمرکز نماید ، میتواند در زمان کمتر ، هزینه پایین تر نرم افزار باکیفیت تری را توسعه دهد . 
فریم ورکها مجموعه ای از ابزارها را فراهم می کند که کارهای تکرار شونده در فرآیند برنامه نویسی را تسهیل نمایند ، ابزارهایی برای مدیریت بهتر کدها و راحتی نگهداری کد و کتابخانه هایی برای انجام پاره ای کارها از قبیل ارسال ایمیل و SMS و ... دارند.
برخالف زبانهای ایجاد شده توسط مایکروسافت که فریم ورکا محدودی دارند ، در زبان PHP به علت متن باز بودن فریم ورک های متنوع با قابلیت های متفاوت ایجاد شده است که از جنبه های مختلف متفاوت بایکدیگرند.
سیمفونی یکی از قدرتمند ترین و با کارایی بالای این فریم ورک ها است اما به علت پیچیدگی یادگیری ، در ایران کمتر کسی سراغ این فریم ورک رفته است . ابزارهای قدرتمندی که این فریم ورک در اختیار برنامه نویس قرار می دهد عبارتند از 
- هسته سیمفونی 
- پایه های HTTP ‪(http foundation)‬ فرم ها

- ارسال ایمیل

- (swift) امنیت

-نمایش(Twing)
- پایگاه داده (Prople or Doctrine)
و نیز ابزارهایی که در قالب افزونه می توان روی سیمفونی سوار کرد. تمامی ابزارهایی که سیمفونی در اختیار قرار می دهد از بهترین تجارب سازندگان آن در آن حوزه می باشند که مجموعه آن ها فریم ورک تقریبا بی نقصی را ایجاد کرده است . اما کارکرد هریک از آن ها و شرح توابع آن ها خود یک مقاله مجزا می خواهد که در این مقاله نمی گنجد. در این مقاله به فلسفه سیمفونی و توضیح مختصری از ابزارهای هسته سیمفونی و ابزارهای جانبی آن می پردازیم.
یادگیری سیمفونی از این جهت دشوار است که شما نه تنها سیمفونی یاد می گیرید بلکه با مفاهیم وب و بهترین تجربیات توسعه نیز آشنا مس شوند و اینکه چگونه از کتابخانه های جالب PHP استفاده نمایید.
سیمفونی ۲ بر اساس یک فلسفه بسیار ارزشمند بنا نهاده شده است و آن هم پیاده سازی فلسفه وب است. پس برای درک کارکرد سیمفونی ۲ بهتر است ابتدا نگاهی به کارکرد وب بیاندازیم .
ما در این مقاله نمی خواهیم به آموزش سیمفونی بپردازیم فقط به بیان مفاهیم بسنده می کنیم.