یک چارچوب برنامه نویسی PHP مجموعه ای از کلاس ها است که در ساخت نرم افزارهای وب به ما کمک می کند. Symfony یک چارچوب مبتنی بر MVC متن باز است که در توسعه سریع برنامه های کاربردی وب مورد استفاده است. سیمفونی یک چارچوب وب کامل بوده شامل مجموعه ای از اجزای قابل استفاده مجدد PHP است که می توانید از هر جزء آن را در برنامه ها، مستقل از چارچوب استفاده کنید.
سیمفونی دارای مجموعه بزرگی از قابلیت ها است، دارای یک جامعه فعال بوده ،پیکربندی انعطاف پذیری با استفاده از YAML، XML یا حاشیه نویسی دارد.
سیمفونی عمدتا از Ruby on Rails، Django، و چارچوب برنامه های کاربردی Spring الهام گرفته است. اجزای Symfony توسط بسیاری از پروژه های منبع باز از جمله Composer، دروپال و phpBB استفاده شده است.
چارچوب Symfony متشکل از چندین جزء است، مثل مولفه HttpFoundation که HTTP را تفسیر می کند و یک شی Request که درخواست ها را بدست می گیرد و نتا دیگر قسمت ها صرفاً اجزای کمکی مانند Validator هستند که به اعتبار سنجی اطلاعات کمک می کند. جزء Kernel قلب سیستم است. Kernel اساسا “کلاس اصلی” است که محیط را مدیریت می کند و مسئولیت رسیدگی به درخواست HTTP است.
ساختار خوش ساخت، کد تمیز و شیوه های برنامه نویسی خوب Symfony باعث می شود که استفاده از آن توسعه وب را آسان تر کند. Symfony بسیار انعطاف پذیر بوده و می تواند در طراحی سایت های کوچک تا سیستم های سازمانی بزرگ استفاده شود.
چارچوب Symfony – ویژگی ها
سیمفونی برای بهینه سازی توسعه برنامه های وب طراحی شده و با هر نسخه جدید آن ، قابلیت ها و امکانات بیشتری هم به آن اضافه می شود.
برخی از ویژگی های برجسته چارچوب Symfony به شرح زیر است:
- ساختار و عملکرد آن مبتنی بر معماری MVC (مدل-کنترولر-نمایش) است
- دارای کارایی بالایی است
- مسیر یابی آن بصورت انعطاف پذیری انجام می شود.
- دارای کدهای قابل استفاده مجدد بوده و برای نگهداری آسان است .
- امکان مدیریت جلسات را دارد.
- دارای کلاس های پایگاه داده کامل با امکان پشتیبانی از چند سیستم عامل است.
- دارای یک جامعه حامی بزرگ و فعال است.
- مجموعه ای از قطعات جدا شده و قابل استفاده مجدد دارد.
- بصورت استاندارد سازی شده و قابلیت همکاری برنامه های کاربردی مختلف را فراهم می کند.
- در برابر حملات مختلف دارای امنیت است.
Symfony انعطاف پذیری زیادی برای توسعه دهندگان ارائه می دهد.ویژگی های عالی برای اشکال زدایی، خواندن کد و توسعه برنامه های قابل برنامه ریزی دارد.
Symfony یک چارچوب وب کامل است این یک ابزار بسیار موثر برای ایجاد برنامه های کاربردی وب است. شرکت های متعددی خدمات Symfony را به مشتریان ارائه می دهند.
در زیر برخی از مزایای استفاده از چارچوب Symfony را خواهید آموخت.
- ریز چارچوب – سیمفونی می تواند برای توسعه یک عملکرد خاص استفاده شود. شما نیازی به بازسازی یا نصب کل چارچوب ندارید.
- کاهش هزینه های توسعه زمان.
- موتور قالب سازی بسیار بالغ و به سرعت به کاربر محول می کند.
- سازگار و قابل گسترش – برنامه نویسان می توانند به راحتی تمام کلاس های چارچوب را گسترش دهند.
چارچوب Symfony – برنامه های کاربردی
اجزای Symfony را می توان بعنوان بخشی از برنامه های دیگر مانند Drupal، Laravel، phpBB، Behat، Doctrine و Joomla استفاده کرد.
دروپال 8 – دروپال یک چارچوب PHP محتوا با منبع باز است. دروپال 8 از لایه های اصلی Symfony استفاده می کند و آن را گسترش می دهد تا ماژول های دروپال را پشتیبانی کند.
Thelia – Thelia یک راه حل تجارت الکترونیک مبتنی بر Symfony است. در ابتدا Thelia در کد PHP و MySQL نوشته شده بود، با این حال، برنامه های سریع تر تولید شده بود. برای غلبه بر این نقص، Thelia با Symfony ادغام شده است تا برنامه ها را به شیوه ای قابل برنامه ریزی توسعه دهد.
Dailymotion یکی از بزرگترین و مستقل ترین وب سایت های سرگرمی در جهان در فرانسه است. هنگامی که آنها تصمیم به مهاجرت چارچوب منبع باز با یک جامعه بزرگ، توسعه دهندگان Dailymotion تصمیم به استفاده از ویژگی های قطعات Symfony برای انعطاف پذیری آن.
قسمت های سیمفونی
Symfony به صورت خلاصه از قسمتهای زیر تشکیل شده است:
- routing و یا مسیر یابی: این بخش مسولیت مسیریابی و انتخاب controller مختص هر درخواست را دارد. مثلا در routing مشخص میکنیم که اگر کاربر در مرورگر خود آدرس aboutus را به منظور دستیابی به صفحه “درباره ما” درخواست داد، باید این درخواست به controller مخصوص نمایش صفحه aboutus رجوع داده شود.
- entity: این بخش مسولیت سر و سامان بخشیدن به ارتباطات دیتابیس را بر عهده دارد. مثلا در این بخش روابط موجود بین جدولهای بانک اطلاعاتی مشخص میشود. در این بخش نام هر فیلد، محدودیتهای نوع و طول آنها و امور دیگر مشخص میشود.
- view: در این بخش فایلهای مربوط به نمایش اطلاعات با هم جمع شده اند. البته این بخش فقط حاوی اسکلت بندی بخش نمایش است، چون دادهها باید از دیتابیس دریافت، تبدیل به شی و در این بخش استفاده شوند.
- controller: اصلی ترین بخش هر برنامهای در symfony همین بخش است. routing بر اساس ورودی، controller خاص را انتخاب میکند، از این به بعد کل وظایف با controller است و کار با routing تمام میشود. Controller پس از دریافت ورودیها و انجام پردازشهای مورد نظر و یا حتی دریافت اطلاعات از model خروجی مناسب را برای نمایش آماده و نتیجه را به کاربر نمایش میدهد.
- 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