یک چارچوب وب PHP مجموعه ای از کلاس ها است که به ایجاد یک برنامه وب کمک می کند. Symfony یک چارچوب MVC متن باز است که به سرعت در حال توسعه برنامه های کاربردی وب جدید است. Symfony یک چارچوب وب کامل است. این چارچوب شامل مجموعه ای از اجزای قابل استفاده مجدد PHP می باشد. شما می توانید از هر جزء Symfony در برنامه ها، مستقل از چارچوب استفاده کنید.

Symfony دارای مجموعه بزرگی از قابلیت ها و دارای یک جامعه فعال بوده و پیکربندی انعطاف پذیری با استفاده از YAML، XML یا حاشیه نویسی دارد. Symfony با یک کتابخانه مستقل و واحد پی اچ پی ادغام شده است. Symfony عمدتا از Ruby on Rails، Django، و چارچوب برنامه های کاربردی Spring الهام گرفته است. اجزای Symfony توسط بسیاری از پروژه های منبع باز از جمله Composer، دروپال و phpBB استفاده شده است.

چارچوب Symfony متشکل از چندین جزء است، مانند مولفه HttpFoundation که HTTP را درک می کند و یک شی درخواست و واکنش مورد استفاده توسط اجزای دیگر را ارائه می دهد. دیگر قسمت ها صرفاً اجزای کمکی مانند Validator هستند که به اعتبار سنجی اطلاعات کمک می کند. جزء Kernel قلب سیستم است. Kernel اساسا “کلاس اصلی” است که محیط را مدیریت می کند و مسئولیت رسیدگی به درخواست HTTP است.

ساختار خوش ساخت، کد تمیز و شیوه های برنامه نویسی خوب Symfony باعث می شود که توسعه وب آسان تر شود. Symfony بسیار انعطاف پذیر است، استفاده می شود برای ساختن سایت های کوچک و رسیدگی به برنامه های سازمانی با میلیاردها اتصال.

چارچوب Symfony – ویژگی ها

Symfony برای بهینه سازی توسعه برنامه های وب طراحی شده و در هر نسخه با ویژگی های آن رشد می کند.

برخی از ویژگی های برجسته چارچوب Symfony به شرح زیر است:

  • سیستم مبتنی بر مدل-View-Controller
  • چارچوب PHP با کارایی بالا
  • مسیر یابی انعطاف پذیر URI
  • کد قابل استفاده مجدد و آسان تر برای حفظ
  • مدیریت جلسه
  • خطا در ورود به سیستم
  • کلاس های پایگاه داده کامل با پشتیبانی از چند سیستم عامل
  • پشتیبانی از یک جامعه بزرگ و فعال است
  • مجموعه ای از قطعات جدا شده و قابل استفاده مجدد
  • استاندارد سازی و قابلیت همکاری برنامه های کاربردی
  • امنیت در برابر جعلی تقاضای تقسیم سایت و سایر حملات

Symfony انعطاف پذیری زیادی برای توسعه دهندگان ارائه می دهد. این ویژگی های عالی برای اشکال زدایی، خواندن کد و توسعه برنامه های قابل برنامه ریزی دارد.

Symfony یک چارچوب وب کامل است این یک ابزار بسیار موثر برای ایجاد برنامه های کاربردی وب است. شرکت های متعددی خدمات Symfony را به مشتریان ارائه می دهند.

در زیر برخی از مزایای استفاده از چارچوب Symfony را خواهید آموخت.

  • ریز چارچوب – سیمفونی می تواند برای توسعه یک عملکرد خاص استفاده شود. شما نیازی به بازسازی یا نصب کل چارچوب ندارید.
  • کاهش هزینه های توسعه زمان.
  • موتور قالب سازی بسیار بالغ و به سرعت به کاربر محول می کند.
  • سازگار و قابل گسترش – برنامه نویسان می توانند به راحتی تمام کلاس های چارچوب را گسترش دهند.

چارچوب Symfony – برنامه های کاربردی

اجزای Symfony را می توان بعنوان بخشی از برنامه های دیگر مانند Drupal، Laravel، phpBB، Behat، Doctrine و Joomla استفاده کرد.

دروپال ۸ – دروپال یک چارچوب PHP محتوا با منبع باز است. دروپال ۸ از لایه های اصلی Symfony استفاده می کند و آن را گسترش می دهد تا ماژول های دروپال را پشتیبانی کند.

Thelia – Thelia یک راه حل تجارت الکترونیک مبتنی بر Symfony است. در ابتدا Thelia در کد PHP و MySQL نوشته شده بود، با این حال، برنامه های سریع تر تولید شده بود. برای غلبه بر این نقص، Thelia با Symfony ادغام شده است تا برنامه ها را به شیوه ای قابل برنامه ریزی توسعه دهد.

Dailymotion یکی از بزرگترین و مستقل ترین وب سایت های سرگرمی در جهان در فرانسه است. هنگامی که آنها تصمیم به مهاجرت چارچوب منبع باز با یک جامعه بزرگ، توسعه دهندگان Dailymotion تصمیم به استفاده از ویژگی های قطعات Symfony برای انعطاف پذیری آن.

قسمت های سیمفونی

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

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

فایل بندی فریم ورک سیمفونی به شکل زیر است:

app
>cache
>config
>logs
>resources
src
vendor
web

پوشه app متعلق به فایل‌های پیکربندی اصلی فریم ورک است. src متعلق به فایل‌های پروژه برنامه‌ای است که می‌نویسیم. vendor متعلق به فایل‌های library و کلاس‌های پایه symfony است. پوشه web فایل‌های اضافی مانند css ها، js‌ها و عکس‌ها را شامل می‌شود.

برخی از فایل‌های موجود در پوشه app اهمیت بیشتری دارند. مانند فایل‌های زیر:


app/AppKernel.php
app/config/config.yml
app/config/routing.yml