سیمفونی

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
Symfony default project

سیمفونی (به انگلیسی: Symfony) یک چارچوب نرم‌افزاری تحت وب متن‌باز است که برای ساختِ وب‌گاه‌های پویا به‌کار می‌رود. این چارچوب که با زبان پی‌اچ‌پی نوشته شده‌است، کار توسعهٔ نرم‌افزار را در سنجش با کدنویسی از آغاز شتاب می‌بخشد. این شتاب‌بخشی توسط کتابخانه‌های این چارچوب انجام می‌شود که بسیاری از آنها کارهای رایج را به‌سادگی انجام می‌دهند. این چارچوب بر اساس مدل معماری مدل-نما-کنترل‌گر (به انگلیسی: MVC) کار می کند.این چارچوب پیاده سازی های شما را بر اساس بسته های (به انگلیسی: bundle) ایجاد کرده پیش خواهد برد و شما نیز می تواند از هزاران بسته نوشته شده متن باز دیگران در پروژه خود استفاده کنید. در ساختار اصلی این چاچوب پوشه های زیر را مشاهده می کنید :

  1. app
  2. bin
  3. src
  4. vendor
  5. web

که اجزای اصلی این چارچوب راتشکیل می دهد. پوشه app برای تنظیمات اصلی و بنیادی پروژه شماست، که شامل فایل های مهم زیر است:

  1. app/AppKernel.php
  2. app/config/config.yml
  3. app/config/routing.yml

پوشه src شامل برنامه نوشته شده توسط شماست که درون خود بسته های ایجاد شده توسط شما را نگهداری می کند. vendor شامل بسته های متن باز دیگران برای استفاده شماست که شما همیشه امکان اضافه نمودن آن ها را دارید و در آخر web شامل نحوه نمایش این چارچوب و همچنین شیوه نامه آبشاری، تصاویر، جاوا اسکریپت و این قبیل فایل های پروژه شماست. این چارچوب بطور پیش فرض از موتور قالب توئیگ (به انگلیسی: twig) پشتیبانی می کند و همچنین نگاشت رابطه ای اشیا (به انگلیسی: ORM) آن داکترین (به انگلیسی: Doctrine) می باشد. وبگاه سیمفونی در ۱۸ اکتبر ۲۰۰۵ شروع به کار کرد. بسیاری از پروژه های بزرگ مانند سیستم مدیریت محتوا (به انگلیسی: CMS) دروپال(به انگلیسی: Drupal) از این چارچوب استفاده نموده اند.

Symfony به صورت خلاصه از قسمت های زیر تشکیل شده است:

  1. routing و یا مسیر یابی: این بخش مسولیت مسیریابی و انتخاب controller مختص هر وظیفه را دارد. مثلا در routing مشخص می کنیم که اگر کاربر در مرورگر خود آدرس /aboutus را به منظور دستیابی به صفحه "درباره ما" درخواست داد، باید این درخواست به controller مخصوص نمایش صفحه aboutus رجوع داده شود.
  2. entity: این بخش مسولیت سرو سامان بخشیدن به ارتباطات دیتابیس را بر عهده دارد. مثلا در این بخش روابط موجود بین جدول های بانک اطلاعاتی مشخص می شود. در این بخش نام هر فیلد، محدودیت های نوع و طول آن ها و امور دیگر مشخص می شود.
  3. view: در این بخش فایل های مربوط به نمایش اطلاعات با هم جمع شده اند. البته این بخش فقط حاوی اسکلت بندی بخش نمایش است، چون داده ها باید از دیتابیس دریافت، تبدیل به شی و در این بخش استفاده شوند.
  4. controller: اصلی ترین بخش هر برنامه ای در symfony همین بخش است. routing بر اساس ورودی، controller خاص را انتخاب می کند، از این به بعد کل وظایف با controller است و کار با routing تمام می شود. Controller پس از دریافت ورودی ها و انجام پردازش های مورد نظر و یا حتی دریافت اطلاعات از model خروجی مناسب را برای نمایش آماده و نتیجه را به کاربر نمایش می دهد.
  5. form: این بخش فرم های مورد استفاده در برنامه را ذخیره می کند. البته استفاده از این بخش و یا حتی بخش view اجباری نیست ولی کنار گذاشتن آن ها با ساده سازی فرایند ها و هدف اصلی استفاده از فریم ورک منافات دارد.

منابع[ویرایش]