خب همونطور که قبلا گفته بودم قصد دارم مطالب آموزشی و فنی در مورد یکی از محبوب‌ترین چهارچوب (framework) وب‌محور به زبان شیرین PHP به نام سیمفونی رو منتشر کنم.

نمی‌دونستم از کجا شروع کنم اما گفتم بذار خودم رو جای یه نفر که تازه می‌خواد با سیمفونی آشنا بشه، قرار بدم و از دیدگاه اون به قضیه نگاه کنم. خب پس اول نکته اینه که سیمفونی چیست؟

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

خب برگردیم به سوال خودمون که سیمفونی چیست؟

به بیان ساده سیمفونی یک چهارچوب (framework) وب‌محور به زبان PHP است که در سال ۲۰۰۵ میلادی توسط شرکت سن‌.سی.یو.لبز (Sensiolabs) با مدیریت فابین پوتنسیر (Fabien Potencier) متولد شد.

در واقع سیمفونی پا فراتر نهاده و خود را این چنین معرفی می‌کند:
سیمفونی یک چهارچوب، یک فلسفه و یک اجتماع است که همه باهم هماهنگ هست.

 

سیمفونی به عنوان یک چهارچوب

برای ایجاد تصویر ساده‌تر و واضح‌تری از چهارچوب، بذارید که کمی از دنیای برنامه‌نویسی دور بشیم و با یه مثال از دنیای واقعی درک بهتری از سیمفونی رو داشته باشیم. خب، یک تجربه صخره‌نوردی رو تصور کنید. توسعه یک محصول خیلی شبیه بالا رفتن و فتح یه صخره است. در آغاز پایین صخره وایستادید (یعنی یه محصول داریم که قراره توسعه و خلقش کنیم) و باید به بالای اون جهت فتح حرکت کنید (هدف تولید یک محصول با کیفیته که کار هم بکنه D: ).

اگر تا الان کسی از این صخره بالا نرفته باشه باید خودتون همه کارهاشو انجام بدید: آزمون مسیرها، تشخیص مسیر صحیح جهت گیر نیفتادن در گوشه‌ها و نصب میخ‌ها و از این دست کارها. در مقابل اگر افرادی قبل از شما این سعی و خطاها رو انجام داده باشند، مسیر برای شما نمایان و همواره شده (چهارچوب و قواعد) و ابزارهای مناسب هم برای تسهیل در صعود (رسیدن به هدف)، نصب و آماده شده.

در واقع یک چهارچوب مشتکل از (تعریف پایه چهارچوب):

  • یک سری ابزار: مجموعه‌ای اجزای نرم‌افزاری پیش‌ساخته با قابلیت ترکیب و استفاده بالا است. این معنای کدنویسی کمتر و احتمال بروز خطاب کمتر است. به تعبیر دیگه‌ای، افزایش بهره‌وری و تخصیص زمان بیشتر به آن چه که ارزش افزوده بیشتری رو فراهم می‌کنه مثل مدیریت اصول راهنما و عوازض جانبی و غیره.
  • یک روش (Methodology): نمودار مونتاژ پروژه است. یه رهیافت منسجم شاید در وهله اول محدود کننده به نظر برسه. اما در واقع کمکی برای توسعه‌دهنگان است تا هم کارآمدتر و هم موثرتر به جنبه‌های پیچیده پروژه بپردازند و همچنین استفاده از به‌روش ‌ها (Best Practices) ضامن پایداری، قابلیت نگه‌داری و توسعه محصولی است که قصد تولیدش رو دارید.

 

یک فلسفه

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

یک جامعه

و در نهایت در پشت‌صحنه سیمفونی، اجتماعی از توسعه‌دهندگان، کاربران و مشارکت‌کنندگان که از سال ۲۰۰۵ دور هم جمع شدن تا ابزاری حرفه‌ای رو برای حرفه‌ها ایجاد کنند قرار دارد.

فقط نسخه ۲٫۰ سیمفونی حاصل ماه‌ها تلاش بی‌وقفه و ارایه ۱۲ نسخه اولیه، ۵ نسخه بتا و ۶ نسخه کاندید برای ارایه نسخه نهایی است. ظرف مدت ۱۸ ماه بیش از ۲۵۰ برنامه‌نویس در یک تلاش جمعی بی‌سابقه، این پروژه محبوب رو جلو بردند و به سرانجام رسوندند.

در مطلب بعدی شرح مختصری درباره نحوه دیکته سیمفونی به صورت symfony و نه symphony خواهم داشت.