سیمفونی

| 0 | 1 |
| --- | --- |
: 
Symfony Welcome PageSymfony Welcome Page: Symfony Welcome PageSymfony Welcome Page
نویسنده(های)اصلی: فابین پوتنسیر
توسعه‌دهنده(ها): Symfony community
انتشار اولیه: ۲۲ اکتبر ۲۰۰۵؛ ۱۸ سال پیش (۲۰۰۵-22}})
: 
انتشار پایدار: ۵.۳.۱     / ۲۰۲۰/۰۵/۳۱
 :  
مخزن: Symfony Repository
نوشته‌شده با: پی‌اچ‌پی
سیستم‌عامل: چندسکویی
در دسترس به: پی‌اچ‌پی
نوع: چارچوب نرم‌افزاری تحت وب
مجوز: پروانه ام‌آی‌تی
وبگاه: symfony.com
سیمفونی (به انگلیسی: Symfony) یک چارچوب نرم‌افزاری تحت وب متن‌باز است که برای ساختِ وبگاه‌های پویا به‌کار می‌رود. این چارچوب که با زبان پی‌اچ‌پی نوشته شده‌است، کار توسعهٔ نرم‌افزار را در سنجش با کدنویسی از آغاز شتاب می‌بخشد. این شتاب‌بخشی توسط کتابخانه‌های این چارچوب انجام می‌شود که بسیاری از آن‌ها کارهای رایج را به‌سادگی انجام می‌دهند. این چارچوب بر اساس مدل معماری مدل-نما-کنترل‌گر (به انگلیسی: MVC) کار می‌کند. این چارچوب پیاده‌سازی‌های شما را بر اساس بسته‌های (به انگلیسی: bundle) ایجاد کرده پیش خواهد برد و شما نیز می‌تواند از هزاران بسته نوشته شده متن باز دیگران در پروژه خود استفاده کنید. در ساختار اصلی این چاچوب پوشه‌های زیر را مشاهده می‌کنید:
<your-project>/
├─ app/
│  └─ config/
│     ├─ config.yml
│     ├─ config_dev.yml
│     ├─ config_prod.yml
│     ├─ config_test.yml
│     ├─ parameters.yml
│     ├─ parameters.yml.dist
│     ├─ routing.yml
│     ├─ routing_dev.yml
│     └─ security.yml
├─ src/
├─ vendor/
└─ web/
که اجزای اصلی این چارچوب راتشکیل می‌دهد. پوشه app برای تنظیمات اصلی و بنیادی پروژه شماست، که شامل فایل‌های مهم زیر است:
app/AppKernel.php
app/config/config.yml
app/config/routing.yml
پوشه src شامل برنامه نوشته شده توسط شماست که درون خود بسته‌های ایجاد شده توسط شما را نگهداری می‌کند. vendor شامل بسته‌های متن باز دیگران برای استفاده شماست که شما همیشه امکان اضافه نمودن آن‌ها را دارید و در آخر web شامل نحوه نمایش این چارچوب و همچنین شیوه نامه آبشاری، تصاویر، جاوا اسکریپت و این قبیل فایل‌های پروژه شماست.
این چارچوب به‌طور پیش‌فرض از موتور قالب توئیگ (به انگلیسی: twig) پشتیبانی می‌کند و همچنین نگاشت رابطه‌ای اشیا (به انگلیسی: ORM) آن داکترین (به انگلیسی: Doctrine) می‌باشد. وبگاه سیمفونی در ۱۸ اکتبر ۲۰۰۵ شروع به کار کرد.
بسیاری از پروژه‌های بزرگ مانند سیستم مدیریت محتوا (به انگلیسی: CMS) دروپال(به انگلیسی: Drupal) از این چارچوب استفاده نموده‌اند.
Symfony به صورت خلاصه از قسمت‌های زیر تشکیل شده‌است:
routing یا مسیر یابی: این بخش مسولیت مسیریابی و انتخاب controller مختص هر وظیفه را دارد؛ مثلاً در routing مشخص می‌کنیم که اگر کاربر در مرورگر خود آدرس /aboutus را به منظور دستیابی به صفحه «دربارهٔ ما» درخواست داد، باید این درخواست به controller مخصوص نمایش صفحه aboutus رجوع داده شود.
entity: این بخش مسولیت سرو سامان بخشیدن به ارتباطات دیتابیس را بر عهده دارد؛ مثلاً در این بخش روابط موجود بین جدول‌های بانک اطلاعاتی مشخص می‌شود. در این بخش نام هر فیلد، محدودیت‌های نوع و طول آن‌ها و امور دیگر مشخص می‌شود.
view: در این بخش فایل‌های مربوط به نمایش اطلاعات با هم جمع شده‌اند. البته این بخش فقط حاوی اسکلت‌بندی بخش نمایش است، چون داده‌ها باید از دیتابیس دریافت، تبدیل به شی و در این بخش استفاده شوند.
controller: اصلی‌ترین بخش هر برنامه‌ای در symfony همین بخش است. routing بر اساس ورودی، controller خاص را انتخاب می‌کند، از این به بعد کل وظایف با controller است و کار با routing تمام می‌شود. Controller پس از دریافت ورودی‌ها و انجام پردازش‌های مورد نظر یا حتی دریافت اطلاعات از model خروجی مناسب را برای نمایش آماده و نتیجه را به کاربر نمایش می‌دهد.
form: این بخش فرم‌های مورد استفاده در برنامه را ذخیره می‌کند. البته استفاده از این بخش یا حتی بخش view اجباری نیست ولی کنار گذاشتن آن‌ها با ساده‌سازی فرایندها و هدف اصلی استفاده از فریم ورک منافات دارد.
| ن ب وچارچوب نرم‌افزاری تحت وب | ن ب وچارچوب نرم‌افزاری تحت وب |
| --- | --- |
ای‌اس‌پی‌دات‌نت:  ای‌اس‌پی‌دات‌نت ام‌وی‌سی   ASP.NET Web Forms  ASP.NET Dynamic Data  BFC  دات‌نت‌نیوک  MonoRail  OpenRasta  Umbraco 
کلد فیوژن:  ColdSpring  Fusebox  Mach-II  Model-Glue  onTap  on Wheels 
لیسپ معمولی:  CL-HTTP  SymbolicWeb  UnCommon Web  Weblocks 
سی++:  CppCMS  Wt 
جاوا:  آپاچی استراتس  AppFuse  Flexive  ابزار وب گوگل  Grails  وادین  ItsNat  جاواسرور فیسز  Jspx  Makumba  OpenXava  پلی فریمورک  Eclipse RAP  Reasonable Server Faces  RIFE  Seam  اسپرینگ فریمورک  Stripes  Tapestry  WebWork  Wicket  ZK  ICEfaces  WaveMaker 
اسکالا:  Lift (web framework)  پلی فریمورک 
جاوااسکریپت:  Ample SDK  چارچوب جاوااسکریپت پروتوتایپ  Rico  script.aculo.us  SproutCore  جی‌کوئری  دوجو  امبر جی‌اس 
پرل:  Catalyst  Dancer  Gantry  Interchange  Mason  Maypole  Mojolicious  Poet  WebGUI 
پی‌اچ‌پی:  AppFlower  کیک‌پی‌اچ‌پی  کدایگنایتر  دروپال  ایی۱۰۷  فیول‌پی‌اچ‌پی  Helium  هرد  جوملا  Lithium  Midgard  مادایکس  Qcodo  Seagull  سیلوراسترایپ  سیمفونی  تایپو۳  وردپرس  Xaraya  یی  چارچوب زند  Zeta Components  لاراول  فلر فریمورک  فلکون 
پایتون:  CherryPy  جنگو  فلسک  Nevow  TurboGears  Plone  Pyjamas  Pylons  Pyramid  web2py  Zope  تورنادو (وب سرور) 
روبی:  روبی آن ریلز  Merb  Sinatra  Hobo  Camping  Nitro  Ramaze 
اسمال‌تاک:  AIDA/Web  Seaside 
سایر زبان‌ها:  Application Express (پی‌ال/اس‌کیوال)  HAppS (هسکل)  Kepler (لوا)  OpenACS (تی‌سی‌ال)  SproutCore (جاوااسکریپت/روبی)  Yaws (ارلنگ) 
| ن ب وپی‌اچ‌پی | ن ب وپی‌اچ‌پی | ن ب وپی‌اچ‌پی |
| --- | --- | --- |
| اشخاص |  اندی گوتمانس  راسموس لردورف  زیو سوراسکی  |  |
| منابع |  شتاب‌دهندها  کامپوزر  ویرایشگرها  کتابخانه‌ها  پر  |  |
| پیاده‌سازی‌ها |  هیپ‌هاپ  Quercus  پروجکت زیرو  فلنجر  پارت  موتور زند  |  |
| چارچوب نرم‌افزاری |  ای‌پی‌پی‌فلاور  کیک‌پی‌اچ‌پی  کدایگنایتر  دروپال  فیول‌پی‌اچ‌پی  هرد  جوملا!  لی۳ (لیتیوم سابق)  میدگارد  مادایکس  کیوکودو  سایلکس  سیلوراسترایپ  سیمفونی  تایپو۳  وردپرس  Xaraya  یی  چارچوب زند  زتا کامپوننتز  لاراول  فلکون  |  |
| آزمایش |  پی‌اچ‌پی‌یونیت  چارچوب آزمایش واحد پی‌اچ‌پی  سیمپل‌تست  لایم (سیمفونی)  |  |
| او آر ام |  Propel  Doctrine  |  |
| IDE |  اکلیپس  ای‌پی‌پی‌فلاور  آپتانا  پی‌اچ‌پی‌استورم  نت‌بینز  ردپی‌اچ‌پی  پی‌اچ‌پی‌دیزاینر  پی‌اچ‌پی‌ادیت  زند استودیو  کدبوستر  |  |
| مترجم |  فلنجر  |  |
| جعبه‌ابزار ویجت |  دابلیو‌اکس‌پی‌اچ‌پی  پی‌اچ‌پی-کیو‌تی  پی‌اچ‌پی-جی‌تی‌کی  |  |
  رده  :   رده  
| 0 | 1 |
| --- | --- |
داده‌های کتابخانه‌ای: کتابخانه‌های ملی :  آلمان