آشنایی با فریمورک برنامه نویسی وب php symfony
زبان PHP یکی از مهمترین زبانها برای برنامه نویسی سمت سرور است که برنامه نویسان زیادی از آن استفاده میکنند. این زبان فریم ورکهای زیادی دارد و این فریم ورکها امکانات زیادی را در اختیار برنامه نویسان قرار میدهند. در این مطلب درباره فریم ورک سیمفونی صحبت میکنیم. اینکه Symfony چیست و چه کاربردهایی دارد.
زبان برنامه نویسی PHP چیست؟
پیاده سازی یک سایت به دو بخش Front-End و Back-End تقسیم میشود که تکنولوژیها و زبانهای زیادی برای پیاده سازی این بخشها وجود دارند. برای پیاده سازی Back-End به زبانهای سمت سرور نیاز داریم که PHP یکی از زبانهای بسیار محبوب برای برنامه نویسی سمت سروراست.
PHP یکی از بهترین و محبوبترین زبانهای برنامه نویسی وب در جهان است. Syntax ساده و روان PHP یادگیری این زبان را برایتان شیرین و لذت بخش میکند و به دلیل چند سکویی بودن (Cross Platform) در سیستم عاملهای مختلف اجرا میشود.
کاربرد اصلی PHP در برنامه نویسی سمت سرور سایتها است، اما در سایر بخشها دیگر مانند برنامه نویسی بک اند اپلیکیشنهای موبایل، ساخت Rest API و غیره نیز استفاده میشود.
امروزه حدود ۷۰% سایتهای جهان با PHP پیاده سازی میشوند و سایتهای بزرگی مانند فیس بوک، ویکی پدیا و غیره از این زبان استفاده میکنند. شما میتوانید از این کتاب ها برای آموزش php کمک بگیرید و روند یادگیری زبان محبوب پی اچ پی را سرعت ببخشید.
استفاده از چارچوبهای برنامه نویسی (فریم ورک) در زبانهای تحت وب رواج بسیاری یافته است. در زبان php نیز فریم ورکهای قدرتمندی در سالهای گذشته شروع به کار کرده اند که برخی واقعا موفق بوده اند.
مطرح ترین فریم ورکها عبارتند از:
- zend
- symfony
- codeigniter
- cakephp
- yii
- laravel
- agavi
- و…
فریم ورک Symfony چیست؟
فریم ورکها مجموعه ای از چارچوبها و استانداردهایی هستند که کار برنامه نویسان را در توسعه سایت و اپلیکیشن سرعت میبخشند و استفاده از آنها مزیتهای زیادی در پروژه به همراه دارد. سایتها وابسته به عواملی مانند مهارت برنامه نویسان ومیزان پیچیدگی در پیاده سازی، میتوانند با Pure PHP یا یکی از فریم ورکهای این زبان ساخته شوند.
سیمفونی مجموعه ای از کامپوننت های PHP است که بر پایه معماری MVC میباشد و تنها فریم ورکی است که استانداردهای PHP را به طور کامل رعایت میکند. Symfony به راحتی روی بیشتر پلتفرمها نصب و کانفیگ میشود و بهترین ویژگی آن، قابلیت استفاده مجدد از کامپوننتهای PHP آن است.
این فریمورک یک موتور دیتابیس مستقل دارد و متناسب با بهترین روشهای پیاده سازی و الگوهای طراحی وب نوشته شده است. Symfony به شما این امکان را میدهد که در کنار آن از سایر کتابخانههای PHP به راحتی استفاده کنید.
این فریم ورک انجمنهای کاربری زیادی دارد و به نسبت سایر فریم ورک هایی مانند لاراول، کار کردن با آن برای توسعه دهندگان حرفه ای و باتجربه راحتتر است. این عوامل باعث شده که سیمفونی پس از لاراول و کدایگنایتر، سومین فریم ورک محبوب توسعه دهندگان باشد.
این فریم ورک توسط شرکتهای مطرح و در محصولات بزرگی استفاده میشود. برخی از استفاده کنندگان این فریم ورک عبارتند از:
- drupal
- PIWIK
- OROCRM
- phpBB
- eZ Publish
- Yahoo
به عنوان مثال Laravel خود به تنهایی فریم ورک قدرتمند و بزرگی است که در بخشهایی از برخی از امکانات symfony استفاده میکند. حتی zend framework که بزرگترین فریم ورک موجود برای زبان php است و توسط شرکت توسعه دهنده php یعنی شرکت zend توسعه داده میشود به پیشنهاد توسعه دهندگان اصلی خود از بخشی از سیمفونی مانند Doctrine بهره میبرد.
همان طور که متوجه شدید در واقع symfony مجموعهای از libraryهایی است که هرکدام وظیفه مشخصی دارند. به همین خاطر میشود فقط از برخی از کتابخانههای symfony استفاده کرد.
فریم ورکهای مطرح php اساسا برای کار خود از مدل mvc برای توسعه استفاده میکنند. mvc یک معماری نرم افزاری است که از حروف ابتدایی کلمات (model, view, control) تشکیل میشود. هدف اصلی این مدل نظم و سرعت بخشیدن به کار توسعه برنامه است. مدل mvc برای اولین بار در سال ۱۹۷۹ معرفی شد.
قبل از توضیح مبحث mvc لازم بذکر است که این نکته را مطرح کنیم که از توضیحات فنی را گذرا بخوانید، در آینده وقتی به صورت عملی با طرز کار یک چارچوب مبتنی با mvc آشنا شوید این مدل برایتان قابل فهم خواهد بود.
اجزای تشکیل دهنده mvc به نحو زیر معرفی میگردند:
- model (مدل در mvc): این قسمت مسولیت کنشهای پایگاه داده را برعهده دارد، دادهها قبل از ذخیره در دیتابیس ابتدا تبدیل به یک شی میشوند و پس از اعمال تغییرات لازم و یا اعتبار سنجیهای لازم در دیتابیس ذخیره میشوند. در هنگام فراخوانی نیز دادهها به شی مورد نظر تبدیل میشوند و پس از تغییرات لازم به بخش نمایشگر و یا view تحویل داده میشوند.
- view (نمایشگر در mvc): این بخش مسولیت آماده سازی واسط کاربری برنامه (user interface) را بر عهده دارد. بخش view در معماری mvc با استفاده از بخش model آماده میشود. به این صورت که دادهها را بشکل شی از model دریافت میکند و به شکلی که برنامه نویس در view مشخص کند به نمایش در میآید.
- controller (کنترلر در mvc): این بخش مدیریت درخواستها را برعهده دارد. ارتباط بین view و model بوسیله controller انجام میپذیرد.
ویژگیهای فریم ورک Symfony چیست؟
این فریم ورک یکی از قابل اعتمادترین فریم ورکهای زبان PHP و گزینه مناسبی برای پیاده سازی اپلیکیشنهای تحت وب است. اما چرا به جای فریم ورک هایی مانند لاراول باید از سیمفونی در پروژههای خود استفاده کنیم؟ بهتر است نگاهی به ویژگیهای این فریم ورک بیندازیم.
انعطاف پذیری بالا
سیمفونی امکانات (feature) بسیار زیادی دارد. پلاگینهای این فریم ورک که bundle نامیده میشوند مجموعه ای از فایلهای PHP، عکس، کدهای جاوا اسکریپت و غیره هستند که میتوان با آنها بخشهای مختلف سایت مانند بلاگ را پیاده سازی کرد. باندلها قابل تغییر هستند و میتوان از آنها در پروژههای دیگر نیز استفاده کرد.
سیمفونی همچنین کامپوننت هایی (components) دارد که روند پیاده سازی بخشهای رایج هر پروژه را سرعت میبخشند تا برنامه نویسان بتوانند زمان بیشتری را به پیاده سازی بخشهای سفارشی و پیچیدهتر اختصاص دهند.
استفاده از باندل و کامپوننت به کاهش وابستگیهای پروژه کمک کرده و اعمال تغییرات را راحتتر میکند و همین مسئله باعث انعطاف پذیری بالای سیمفونی در پروژههای تحت وب شده است.
تست پذیری
استفاده از الگوهای طراحی (Design Patterns) و باندلها کار تست و کنترل کدها را بسیار راحت میکند. به دلیل استفاده از کتابخانه PHPUnit انجام تست واحد (Unit Testing) و تستهای عملیاتی (Functional testing) نیز بسیار ساده میشود.
پشتیبانی طولانی مدت و انجمنهای فعال
سیمفونی به روزرسانیهای زیادی دارد و نسخههای قبلی، به خوبی با نسخههای جدیدتر هماهنگ میشوند تا توسعه دهندگان با مشکلی مواجه نشوند. همچنین داشتن کامیونیتیهای فعال و منبع باز (open-source) بودن این فریم ورک، باعث شده که توسعه دهندگان به راحتی بتوانند آن را تغییر داده و برای استفادههای مختلف در اختیار سایر کاربران قرار دهند.
محدودیت های فریم ورک Symfony چیست؟
البته که دلایلی هم وجود دارد که باعث شده سیمفونی جایگاه اول و دوم را از دست بدهد و به برنز قانع شود. عملکرد (Performance) سیمفونی همواره مورد بحث بوده است.
سیمفونی کمتر در پیاده سازی شبکههای اجتماعی استفاده میشود زیرا در اپلیکیشنهای به هنگام (Real-Time) کارایی کمی داشته و توانایی پاسخ دهی به حجم زیادی از کاربران را به طور همزمان ندارد.
البته که با استفاده از PHP7 این ضعف تا حدی برطرف میشود اما در مواردی هم نمیتوان از این محدودیت چشم پوشی کرد و برنامه نویسان ناچار به جایگزین کردن فریم ورک دیگری هستند.
همان طور که در بالا اشاره شد کار کردن با این فریم ورک برای افراد باتجربه و حرفه ای راحتتر است. البته امکانات سیمفونی ارزش آموزش دیدن دارد اما اگر قصد دارید آموزش زبان PHP را آغاز کنید بهتر است فریم ورک سادهتری انتخاب کنید.
جمع بندی
به طور کلی فریم ورکها در ساده سازی روند پیاده سازی یک پروژه به کار میروند. گرچه ممکن است یادگیری فریم ورک قدرتمند سیمفونی دشوار به نظر برسد اما امکانات خوبی دراختیار شما قرار میدهد که ممکن است باعث نادیده گرفتن ضعفهای آن شود.
آشنایی با فریمورک برنامه نویسی وب php symfony