خانه مهندسی نرم افزار مقایسه معروفترین فریمورکهای PHP مهندسی نرم افزار لاراول PHP نوشته شده توسط: رضا جعفری تاریخ انتشار: ۰۵ اسفند ۱۳۹۷ آخرین بروزرسانی: ۲۱ مهر ۱۴۰۱ زمان مطالعه: 18 دقیقه ۵ (۱) مقدمه زبان PHP بیشترین سهم بازار را در بین زبانهای تحت وب دارد. براساس آمار اولیه در سال ۲۰۱۹ زبان PHP بیش از ۷۰ درصد بازار را به خود اختصاص داده است. از دلایل موفقیت PHP میتوان به موارد زیر اشاره کرد. رایگان بودن استفاده از PHP ارزانتر بودن هاستهای PHP به نسبت سروهای ویندوزی مصرف کم منابع در PHP7 جامعه پشتیبانی بزرگ وجود فریم ورکهای مختلف برای افزایش سرعت در فرآیند توسعه همانطور که گفته شد در زبان PHP فریم ورکهای متعددی وجود دارد. در این مقاله به بررسی و مقایسه فریمورکهای php میپردازیم. سه فریمورک فالکون، لاراول و کدایگنایتر برای این مقایسه انتخاب شدهاند. ۱- فریمورک فالکونPhalcon بدون شک فالکون سریعترین فریمورک موجود در زبان PHP است. همین مسئله باعث میشود تعداد درخواستهایی که در یک ثانیه قابل پردازش است بسیار بیشتر از دیگر فریمورکها باشد. فریمورک فالکون براساس زبان C طراحی شده است. همین مسئله باعث افزایش سرعت فریمورک فالکون گردیده است. شعار فریمورک فالکون “فریمورکی با کارایی بالا” است.فالکون از معماری MVC پشتیبانی مینماید. در فالکون یک ORM برای کار با دیتابیس وجود دارد. این ORM باعث آسان شدن کار با دیتابیس میشود. یعنی دیگر نیازی نیست دستورات طولانی را به زبان SQLبنویسید. هرچند اگر قصد انجام این کار را داشته باشید، هیچ محدودیتی وجود ندارد. نقاط قوت فریمورک فالکون: سرعت بالا: فالکون سریعترین فریم ورک PHP است. پشتبانی از ORM برای کار با دیتابیس: این ویژگی باعث تسریع کار با پایگاه داده میشود. وجود تمپلیت انجین Volt: Volt برای ساخت ظاهر صفحات یا همان لایه View استفاده میشود. Volt سرعت بالایی در اجرا دارد زیرا با زبان C نوشته شده است. استفاده از Volt اجباری نیست و میتوانید با ترکیب html و PHP صفحات را طراحی نمایید. Volt را میتوان مشابه Razor View در .NET دانست. پشتیبانی از PHP7: همانطور که احتمالا میدانیدPHP7 سرعتی ۲ برابر PHP5 دارد و مصرف منابع آن نیز نصف است. به همین دلیل اکثر برنامه نویسان خبره از PHP7 استفاده مینمایند. عدم پشتیبانی از PHP7 توسط فالکون برای مدتی ادامه داشت. این موضوع عاشقان این فریمورک را بسیار نگران کرده بود. اما بعد از مدتی تقریبا طولانی فالکون نسخه جدیدی را برای پشتیبانی از PHP7 ارائه داد. کارایی بالا و سخت تر بودن برنامه نویسی در فالکون مواردی است که عاشقان فالکون به آن افتخار می کنند!!! به عنوان یکی از توسعه دهندگان فریم ورک فالکون لازم است به ۴ نقطه ضعف فالکون اشاره کنم. نقاط ضعف فریمورک فالکون: عدم وجود توابع آماده و Helperها در اینترنت: به عنوان مثال برای فریم ورک لاراول به راحتی میتوانید یک تصویر امنیتی ایجاد نمایید. کافی است از Helper موجود در اینترنت برای لاراول استفاده نمایید. اما در مورد فالکون اینگونه نیست. یعنی باید خودتان یک تصویر امنیتی را از ابتدا طراحی نمایید یا کدهایی که با PHP خام نوشته شده را تبدیل نمایید. کوچک بودن جامعه پشتیبانی: فالکون از یک فروم تخصصی برای پشتیبانی بهر میبرد اما به نسبت دیگر فریم ورکها تعداد سوالات و جوابها کمتر است. یعنی در فالکون کار سختتری برای یافتن پاسخ یک خطا و یا حتی یادگیری دارید. چند مشکل جزءی در پشتیبانی از زبان فارسی: به عنوان نمونه وجود کاراکتر ‘م’ در URL مسیریابی صفحه را با مشکل روبرو مینماید. برای حل این مسئله میتوانید کد زیر را در فایل Htaccess بنویسید. قطعه کد زیر پارامتری که شامل حرف م هست را برای صفحه tags و کنترلر i تصحیح مینماید. RewriteRule ^tags/i/([0-9A-Za-z\x7f-\xff]*)$ Tags/i?params=$1 [L] عدم وجود هاست اشتراکی قوی برای فالکون: هاستینگ قوی اشتراکی در داخل برای فریمورک فالکون وجود ندارد. بنابراین باید یک هاست اختصاصی برای Phalcon انتخاب نمایید. این مسئله مربوط به ایران میشود. در بسیاری از کشورها مانند آلمان، امریکا، برزیل و… هاستینگ های اشتراکی قوی از فالکون پشتیبانی مینمایند. ۲- فریمورک لاراول:Laravel لاراول بدون شک محبوبترین فریم ورک PHP است. مهمترین دلیل آن سادگی استفاده و افزایش سرعت توسعه است. لاراول نیز مانند فالکون از معماری MVC استفاده مینماید. از نظر من فریم ورک لاراول معماران و طراحان نرم افزار بسیار باهوشی را داشته است. آنها به خوبی توانستهاند تعادلی بین QAها برقرار نمایند. منظور از QA ویژگیهای کیفی مانند کارایی، امنیت، سهولت استفاده و غیره است. نقاط قوت لاراول: سهولت کد نویسی و افزایش سرعت توسعه وجود ORM قوی برای کار با دیتابیس جامعه پشتیبانی وسیع وجود هاستینگ قوی اشتراکی برای لاراول در داخل کشور نقاط ضعف لاراول: عدم پشتیبانی از کدهای قدیمی بعد از بروزرسانیهای اصلی: به عنوان نمونه فرض کنید کدی را با لاراول ۴ نوشته باشید. سپس لاراول را به نسخه ۵ را ارتقاع میدهید. تبریک میگم خروجی این کار صدها خط Error است! مهاجرت از لاراول ۴ به نسخه ۵ به راحتی یک کلیک نیست. ۳- فریمورک کدایگنایتر فریم ورک کدایگنایتر به نسبت لاراول سریعتر است. بنابراین عملکرد بسیار مناسبی را برروی هاستهای اشتراکی دارد. موارد امنیتی مناسبی نیز در ساختار کدایگنایتر وجود دارد. این فریمورک نیز براساس معماری MVC است. نکات مثبت فریم ورک کدایگنایتر در زیر لیست شده است. نقاط قوت کدایگنایتر: سریع و سبک است. Debug آن آسان است. جامعه پشتیبانی وسیعی دارد. امنیت مناسبی دارد. نقاط ضعف کدایگنایتر: عدم وجود ORM به صورت پیش فرض: برای حل این مسئله باید از افزونههای که توسط تیمهای مختلف تولید شده استفاده نمایید. DataMaper یکی از معروفترین ORM ها برای کدایگنایتر است. بروزرسانی نامنظم نتیجه گیری نهایی صادقانه بگویم هیچ بهترینی وجود ندارد. انتخاب فریمورک کاملا وابسته به SRS(سند نیازمندی) و SAD(سند معماری) پروژه است. به عبارت سادهتر فرض کنید یک وب سایت فروشگاهی با حجم کاربران زیاد به همراه APP موبایل دارید. مشتری از شما یک سایت اختصاصی خواسته است. یعنی استفاده از فروشگاه سازهایی مانند ووکامرس و مجنتو مجاز نیست. در اینجا اگر محدودیت زمانی نباشد و بخواهید بهترین استفاده از منابع را داشته باشید میتوانید فالکون را انتخاب نمایید. اما یک نکته بسیار مهم است. ابتدا باید از خود بپرسید که آیا اصول برنامه نویسی برای پشتیبانی از کاربران زیاد را میدانید؟ اگر پاسخ این سوال خیر باشد، حتی فالکون هم نمیتواند شما را نجات دهد. اما اگر پاسخ این سوال بله است، لاراول و کدایگنایتر نیز انتخاب مناسبی است و زمان پروژه عامل تعیین کننده است. اگر محدودیت زمانی برای اجرای پروژه دارید میتوانید لاراول را انتخاب نمایید. اما برای ایجاد وب سرویسها و ارتباط با اپلیکیشن موبایل از فالکون استفاد نمایید. زیرا برای وب سرویسها و اپ موبایل سرعت و تعداد بالای درخواست مهم است. حجم کد نویسی این وب سرویسها از پیادهسازی سایت فروشگاهی بسیار کمتر است. به همین دلیل زمان پروژه نیز آسیب کمتری میبیند. در مورد امنیت نیز باید گفت تمامی فریم ورکها امنیت لازم را دارند. اما دو نکته بسیار مهم وجود دارد. نکته اول: آیا شما با امنیت سیستمهای تحت وب آشنایی دارید؟ اگر بله، تمامی این فریمورکها ایمنی مناسبی دارند. اگر با امنیت آشنایی ندارید همه فریمورکها برای شما نا امن هستند. نکته دوم: هرچه تعداد افراد آشنا به یک فریمورک بیشتر باشد، امنیت آن نیز بیشتر در خطر است. یک مثال خوب CMS وردپرس است. همه میگویند وردپرس امنیت ندارد. درصورتی که مشکل اصلی دانش پایین صاحبان سایت، افزونههای آلوده و تعداد زیاد افرادی که وردپرس را میشناسند است. اولین لازمه هک و نفوذ داشتن آشنایی با سیستم هدف است. چه رتبه ای میدهید؟ میانگین ۵ / ۵. از مجموع ۱ اولین نفر باش معرفی نویسنده مقالات 1 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده رضا جعفری مقالات مرتبط ۰۷ فروردین مهندسی نرم افزار تفاوت DDD، میکروسرویس (Microservice)، الگوهای طراحی (Design pattern) و معماری تمیز (Clean Architecture) تیم فنی نیک آموز ۰۳ اسفند مهندسی نرم افزار آشنایی با تفاوت Domain Events و Integration Events تیم فنی نیک آموز ۲۶ بهمن مهندسی نرم افزار ۵ راز ساخت سیستم قدرتمند با پیاده سازی معماری میکروسرویس : چالش ها و راه حل ها تیم فنی نیک آموز ۰۵ دی مهندسی نرم افزار راهنمای مسیر شغلی معمار ارشد نرم افزار تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ