1 فریم‌ورک مناسب برای پروژه PHP خود انتخاب کنید

1 فریم‌ورک مناسب برای پروژه PHP خود انتخاب کنید
معمولا خوره‌ (Nerd)های توسعه دهنده وب، افراد تنبلی هستند laugh و البته این چیز خوبی هستش چون باعث شد با این تفکر که "چرخ را از ابتدا نباید اختراع کرد" کدهایی بنویسند و توسعه‌هایی دهند که کار دیگران را راحت کنند ! FrameWorkها نتیجه این تفکر و تنبلیه که خیلی هم مفید و سازنده هستش.
استفاده از FrameWorkها در توسعه وب مزایای بسیاری دارد که البته باید برای هر پروژه فریم‌ورک مناسب آن کار را انتخاب کنیم تا بتوانیم از تمامی مزایای آن استفاده کنیم.
در این مطلب با مجیدآنلاین همراه باشید تا بتوانید یک فریم ورک مناسب برای کار خود انتخاب کنید.
دارالترجمه رسمی
دارالترجمه رسمی پارسیس شامل خدمات ترجمه رسمی و تخصصی در بیش از 60 زبان زنده دنیا
جای بروشور دیواری
خرید جای بروشور دیواری و رومیزی
افزونه های سئو وردپرس
بهترین افزونه های سئو وردپرس به صورت کاملا فارسی
تعمیر لوازم خانگی
تعمیر جاروبرقی، مایکروفر، بخارشوی، ظرفشویی، لباسشویی، سولاردام، کولرگازی
خودتان را اینجا معرفی کنید

FrameWork (فریم‌ورک) چیست؟

فریم ورک‌ها مجموعه ای از کدهای از قبل طراحی و نوشته شده هستند که توسط سایر توسعه‌دهندگان و غالبا بصورت OpenSource توسعه داده شده است. فریم‌ورک‌های PHP کدنویسی‌های وب را با استفاده از componentهایی که دارند برای توسعه‌دهندگان آسان‌تر می‌کنند. به عنوان مثال برای احراز هویت کاربر (user authentication) نیازی نیست از ابتدا تحلیل و طراحی و برنامه نویسی کنید، چون از قبل کامپوننت‌های زیادی برای اینکار در فریم‌ورک‌ها وجود دارد. به همین دلیل کدهایی که ما می‌نویسیم استاندارد خواهند بود و در نتیجه باعث میشه برای توسعه، بهینه سازی و رفع باگ‌ها کار برنامه‌نویس بسیار آسان‌تر شود و همانطوری که پیش‌تر هم گفته شد باعث می‌شود زمان و ذهن توسعه‌دهنده آزاد شود و در نتیجه بتواند برای مسایل پیچیده‌تر و مهم‌تر تمرکز کند.
یکی از فریم‌ورک‌های مشهور PHP به نام Symfony در وب‌سایت خودش میگه : "یک فریم‌ورک یک تضمینی برای کیفیت بالا، قابلیت به‌روزرسانی و قابلیت نگهداری نرم‌افزار با کمترین هزینه است" . در وصف این موضوع فریم‌ورک لاراول (یکی از فریم‌ورک‌های قدرتمند PHP) هم در سایتش گفته که قول میده که با لاراول می‌توانید نرم‌افزارهای کاربردی زیبایی رو با سرعت بالا توسعه دهید.

مزایای استفاده از FrameWork

اصولا زمانی که شما این مطلب را می‌خوانید، اهمیت استفاده از فریم‌ورک‌ها را درک کرده‌اید و نیازی به توضیح و تفسیر اینکه چرا ما باید از فریم‌ورک استفاده کنیم نداریم! اما فقط برای اطمینان مجدد از اینکه هنوز پشیمان نشده‌اید که از فریم‌ورک استفاده کنید چند نکته رو یادآور خواهم شد.
بطور کل استفاده از فریم‌ورک بیشتر دارای مزیت است تا عیب ! همونطوری که در مقدمه این مطلب هم گفته شد، مهمترین مزیتی که برای استفاده از فریم‌ورک‌ها می‌تونیم بیاریم اختراع نکردن مجدد چرخ و تمرکز بر روی توسعه و بهینه سازی چرخ هستش، که اینجا منظور از چرخ، کدهای توسعه‌داده شده است.

ولی بطور کل مزایای استفاده از FrameWork در توسعه‌ها برای توسعه‌دهندگان عبارتند از:
  1. نظم و سازماندهی شدن کدها و فایلهای پروژه
  2. استفاده از ابزارهای و کتابخانه‌های از پیش تعریف شده
  3. استفاده از الگوی MVC
  4. امنیت بالاتر
  5. کدنویسی کمتر و سرعت توسعه بیشتر
  6. امکان استفاده از کمک سایر توسعه‌دهندگان بدلیل استاندارد بودن روش توسعه
  7. موقعیت‌های شغلی مشخص و تعریف شده
  8. ابزارهای بهینه سازی
  9. مناسب برای کار و توسعه تیمی
  10. کلا باحاله heart
 

سوالاتی که برای انتخاب فریم‌ورک باید پرسیده شود

درسته که استفاده از فریم‌ورک‌ها مفیده، اما این خیلی مهمه که برای چه پروژه‌ای، چه فریم‌ورکی را انتخاب کنیم؟ برخی از فریم‌ورک‌ها برای تولید یک سری نرم‌افزارهای اختصاصی توسعه داده شده‌اند و مسلما اگر ما آنها را اشتباه برای کار دیگری استفاده کنیم نه تنها برای ما مفید نخواهند بود بلکه کارها بسیار دشوارتر و پیچیده‌تر خواهد شد.
در اینجا ما ۵ سوال داریم که باید قبل از انتخاب یک فریم‌ورک مناسب برای کار از خودمان بپرسم و به آنها پاسخ دهیم تا بتوانیم فریم‌ورک مناسب را انتخاب کنیم.
  1. من چه کارایی و قابلیتی از فریم‌ورک انتظار دارم؟ (من به دنبال چه کامپوننت‌ها و کدهای از پیش تعریف شده ای هستم؟)
  2. اگر برایم سوالی بوجود آید آیا منابعی برای گرفتن پاسخم وجود دارد؟
  3. چه کسانی بر روی این فریم‌ورک فعالیت دارند و آنرا توسعه می‌دهند؟
  4. چه مدت زمان درگیر یادگیری آن خواهم بود؟ 
  5. سایر کسب و کارهای حوزه کار من از چه فریم‌ورک‌هایی استفاده کرده‌اند؟

چهار فریم‌ورک محبوب PHP عبارتند از :  تمامی فریم‌ورک‌های فوق بصورت Open Source منتشر می‌شوند و می‌توانید هر کدام را که بخواهید انتخاب کنید.
برای اینگه بتونید برای پروژه بعدی خودتون یک فریم‌ورک مناسب پیدا کنید، چهار فریم‌ورک بالا رو مورد بررسی قرار می‌دیم.

فریم‌ورک Symfony

فریم‌ورک SymfonySymfony توسط شرکت فرانسوی SensioLabs توسعه داده شده است، SensioLabs دوره‌های آموزشی به زبان‌های مختلف و در مناطق محتلف برای آموزش Symfony دارد که در نهایت پس از گذارندن دوره‌ها می‌تونید Symfony Certification را دریافت کنید.
تیم توسعه‌دهنده Symfony بصورت متناوب و هفتگی وبلاگ خود را با موضوعاتی از جمله موارد مهم در زمینه برنامه نویسی با Symfony و همچنین موارد تازه‌ای که در Community این فریم‌ورک رخ داده و بوجود اومده، به‌روز میکنه.
انجمن رسمی سیمفونی SensioLabsConnect نام داره که شامل گروه‌هایی با بیش از ۳۰۰ هزار توسعه‌دهنده از بیش از ۱۲۰ کشور دنیاست و بیش از ۳۴ هزار سوال در سایت StackOverflow و سایر سایتهای مرتبط در خصوص این فریم‌ورک پرسیده شده است.
مدت زمان لازم قابل توجهی برای یادگیری Symfony نیاز است (به دلیل قابلیت‌های زیادی که سیمفونی دارد) ولی البته با وجود انجمنها و منابع زیاد و فعال Symfony می‌توان زمان یادگیری آن را کمتر کرد.

چه زمانی Symfony را انتخاب کنم ؟

اگر این موارد برای شما مهم است:
  • قابلیت‌ها و امکانات واقعا کامل
  • ثبات در مرحله enterprise
  • انتشار بصورت LTS (انتشار بصورت ۶ ماهه که در نتیجه شما می‌توانید همیشه از آخرین نسخه استفاده کنید)
  • نیاز به تست واحد (Unit Test) برای تغییرات در نسخه‌های برنامه جهت بالابردن قابلیت اطمینان برنامه
  • وجود roadmap مرتب و تمیز جهت نگهداری نسخه‌های مختلف Symfony
  • دارا بودن بیشترین تعداد بسته‌های نرم افزار (Bundle) در بین تمامی فریم‌ورک‌های دیگر
  • انعطاف بالا در پیاده‌سازی و تغییر کامپوننت مورد نیاز
  • آموزش و مدرک رسمی
 

فریم‌ورک Zend Framework 2

فریم‌ورک Zendاین فریم‌ورک در سال ۲۰۰۶ توسط شرکت Zend که یک شرکت زیرساخت نرم‌افزاری و پشتیبان رسمی PHP می‌باشد، توسعه داده شد. دفتر مرکزی شرکت Zend در ایالت کالیفرنیا کشور آمریکا مستقر است.
فریم‌ورک‌های Symfony و Zend با هم در رقابت هستند ولی این امکان وجود دارد که از المان‌های هر دو فریم‌ورک در یک پروژه استفاده کرد.
در سایت StackOverflow حدود ۲۰ هزار سوال در خصوص Zend Framework سوال پرسیده شده و در این زمینه فعالیت صورت گرفته است.

چه زمانی از Zend Framework استفاده کنم؟

اگر این موارد برای شما مهم است:
  • ثبات عالی در مرحله enterprise
  • شرکت‌های بزرگی از جمله Google، IBM و Adobe در اون مشارکت داشته باشند
  • sessionها رو بتونید خوب کنترل کنید
  • performance نرم‌افزار
  • با ZendStudio و یا ZendServer کار کنید
  • آموزش و مدرک رسمی
 

فریم‌ورک Yii

فریم‌ورک Yiiفریم‌ورک Yii توسط توسعه‌دهندگان PHP در سرتاسر جهان توسعه و پشتیبانی می‌شود و شرکت خاصی پشت آن نیست. بر اساس گفته مجله Mashable فریم‌ورک Yii از کش بسیار قوی پشتیبانی می‌کند و اساسا طراحی شده که با AJAX کار کند.
 شروع پروژه فریم‌ورک Yii در سال ۲۰۰۸ بود و هم اکنون در سایت StackOverflow بیش از ۳۶ هزار سوال در زمینه این فریم‌ورک پرسیده شده است.

چه زمانی از Yii استفاده کنم ؟

اگر این موارد برای شما مهم است:
  • الگوی طراحی MVC
  • مدیریت کارآمد خطاها
  • پشتیبانی قوی از Ajax
  • فریم‌ورکی که توسط توسعه‌دهندگان ایجاد شده است
  • performance بالا و سریع
 

فریم‌ورک Laravel

فریم‌ورک Laravelفریم‌ورک لاراول خود را "یک فریم‌ورک PHP برای صنعت‌گران وب" معرفی می‌کند. این فریم‌ورک بر پایه کامپوننت‌های symfony ساخته شده است که می‌خواهد، شما به سمت فریم‌ورک‌ها بروید و به راحتی و به شکل تمیزی کد بزنید.
فریم‌ورک لاراول بسیار ساده و راحت است، اما این بدان معنا نیست که این فریم‌ورک قابلیت‌های زیادی ندارد و کارآمد نیست. لاراول هم، مانند همه فریم‌ورک‌های PHP یک فریم‌ورک جدی و قدرتمند است که حتی توانسته در مدت چهار سال که از زمان انتشار آن می‌گذرد در بین محبوب‌ترین فریم‌ورک‌های PHP قرار گیرد.

چه زمانی از Laravel استفاده کنم ؟

اگر این موارد برای شما مهم است:
  • یک فریم‌ورک که بتوان راحت آنرا یاد گرفت
  • تست ساده Unit
  • استفاده از Composer برای مدیریت dependencyها
  • افزایش استفاده و محبوبیت در بین توسعه‌دهندگان PHP
  • وجود منابع و ویدئوهای آموزشی مانند Laracast 
 

بازدهی فریم‌ورک‌های PHP

اندازه‌گیری میزان بازدهی فریم‌ورک‌ها بسیار کار سختی هستش چون در حالت واقعی پارامترها و مقادیر بسیار متفاوت‌تر از مقادیر و پارامترهای در حالت تست هستند و بدیل تکنولوژی‌های متفاوت بکار رفته در هر کدام کار مقایسه بسیار دشوار می‌شود.
با این وجود و بر اساس مطالبی که در اینترنت منتشر شده است میشه گفت Laravel و Yii از لحاظ performance تا حدی سریعتر از Symfony و Zend هستند که البته می‌توان یی از دلایل آنرا هم سبک بودن فریم‌ورک‌های Laravel و Yii به نسبت دو فریم‌ورک دیگر دانست.
البته ممکن است در پروژه‌ها و تست‌های متفاوت نتایج متفاوتی حاصل شود، اما در یک شرایط یکسان این حالاتی که گفته شد رخ داده است.
 

فریم‌ورک‌ها مفید هستند اما اجباری نیستند

اینو به خاطر داشته باشید که استفاده از فریم‌ورک در یک پروژه اجباری نیست، اما انتخاب یک فریم‌ورک مناسب و استفاده صحیح از آن در یک پروژه می‌تواند تا حد زیادی در زمان و هزینه تمام شده پروژه نقش داشته باشد. به نظر من استفاده از فریم‌ورک نشان دهنده حرفه‌ای بودن یا نبودن توسعه‌دهنده نیست، یک توسعه‌دهنده حرفه‌ای حتی ممکن است فریم‌ورک شخصی خودش را داشته باشد و حتی برعکس، کسی که از فریم‌ورک استفاده می‌کند لزوما یک فرد حرفه‌ای به شما نمی‌آید. اما پیشنهاد میکنم اگر می‌خواهید سریعتر حس حرفه‌ای بودن رو تجربه کنید و مانند حرفه‌ای ها کار کنید، از ابزارهای حرفه‌ای هم استفاده کنید. این ابزارهای می‌توانند فریم‌ورک، محیط توسعه، استفاده از منابع و... باشند.
 

نتیجه گیری

اگر تاکنون از فریم‌ورک استفاده کرده‌اید و همیشه برای همه پروژه‌های خود از همان فریم‌ورک استفاده کرده‌اید، الان وقت آن است که کمی فکر کنید پروژه جدیدی که در دست دارید تا انجام دهید را آیا با همان فریم‌ورک باید کار کنید یا اینکه فریم‌ورک خود را باید تغییر دهید؟ در این مطلب فقط ۴ فریم‌ورک محبوب PHP بشکل خیلی کلی مطرح شد و هدف من در اصل این بود که بگویم شما باید نحوه کار با فریم‌ورک، برنامه نویسی MVC و بطور کل موارد برنامه نویسی را باید بلد باشید و نباید به یک فریم‌ورک خاص وابسته باشید. زمانی که شما اصول برنامه نویسی را بلد باشید می‌توانید هر زمان که خواستید، بر اساس پروژه مورد نظر خود فریم‌ورک مناسب را انتخاب کنید و با صرف کمی وقت آنرا یاد بگیرید و از آن در پروژه‌های خود استفاده کنید.
اگر شما هم نظری در مورد مزایا و معایب فریم‌ورک‌های PHP دارید از طریق فرم زیر با من و سایر خوانندگان این مطلب به اشتراک بگذارید.
 

مجید علوی زاده فعالیت حرفه ای خود را از سال ۱۳۷۷ با طراحی گرافیک شروع کرد، طراحی وب را از سال ۱۳۸۰ و برنامه نویسی وب را از سال ۱۳۸۱ آغاز کرد و در همان سال وب سایت مجید آنلاین را تاسیس کرد. هم اکنون تخصص او طراحی و توسعه وب است.

نظرات و سوالات کاربران

ارسال پاسخ حامد
حامد
جمعه ۰۸ اردیبهشت ۱۳۹۶ ۲۰:۰۷
سلام
من سالهاست برنامه نویس php هستم به نظرم CodeIgniter نیز هم پرطرفدار هست هم قدرتمند ولی در لیست نست.
ارسال پاسخ مجید علوی‌زاده
مجید علوی‌زاده
جمعه ۰۸ اردیبهشت ۱۳۹۶ ۱۵:۱۸
در پاسخ به دیدگاه محمد عرب محمدی ارسال شده در پنج شنبه ۰۷ اردیبهشت ۱۳۹۶ ۲۰:۱۳
به نظر شما فریمورکی میتونه کمک کنه توی طراحی بوت تلگرام چه فریم وورکی هست ؟
فریم‌ورک خیلی فراتر از اینه که باهاش بات تلگرام فقط طراحی کنی،
برای این کار شما می‌تونی از پکیج‌هایی که وجود داره استفاده کنی.
مثلا یک نمونه‌اش این:
github.com/php-telegram-bot/core
ارسال پاسخ محمد عرب محمدی
محمد عرب محمدی
پنج شنبه ۰۷ اردیبهشت ۱۳۹۶ ۲۰:۱۳
به نظر شما فریمورکی میتونه کمک کنه توی طراحی بوت تلگرام چه فریم وورکی هست ؟
ارسال پاسخ sirmagid
sirmagid
شنبه ۲۲ آبان ۱۳۹۵ ۱۲:۳۳
به نظرم استفاده از فریمورک ها کار درستی نیست چرا که واقعیت مسئله این در این برنامه ها backdoor های زیادی هستند که هک را برای سازندگان خود فریم ورک آسان میکند
ارسال پاسخ sadjad
sadjad
دوشنبه ۲۴ اسفند ۱۳۹۴ ۲۳:۰۹
لطفا درباره MVC هم مقاله بنویسید
ارسال پاسخ mahdi
mahdi
جمعه ۰۹ مرداد ۱۳۹۴ ۱۳:۵۵

yii ham alieh

ارسال پاسخ میثم
میثم
دوشنبه ۰۵ مرداد ۱۳۹۴ ۰۹:۵۴

از همه مهم تر CodeIgniter

ارسال پاسخ mohsen_shafiee
mohsen_shafiee
جمعه ۰۲ مرداد ۱۳۹۴ ۰۰:۴۲

عالی بود. لاراول انتخاب خیلی خوبیه، کار با مدل‌ها رو خیلی آسون کرده.
میتونستید Phalcon رو هم توی لیستتون بیارید.