نقد و بررسی فریم ورک های پی اچ پی: کدامیک را انتخاب کنیم؟

امروزه اگر بخواهیم یک استارتاپ به راه اندازیم و یا اپلیکیشنی برای موبایل طراحی کنیم، مسلماً نیاز به یک وب سایت مرتبط با کار خود داریم. حال اگر بخواهیم صرفاً یکسری اطلاعات را در معرض دید کاربران قرار دهیم، یک سایت استاتیک کفایت می‌کند اما اگر بخواهیم به تعامل با کاربران خود بپردازیم، مسلماً نیاز به یک وب سایت دینامیک داریم. زمانی که پای وب سایت‌های دینامیک به میان می آید، ما بر سر چند راهی قرار خواهیم گرفت که کدام زبان برنامه نویسی را انتخاب کنیم: آیا زبان‌های خانواده مایکروسافت مثل سی شارپ و خانواده دات نت را برگزینیم و یا به دنبال سالوشن های متن بازی مثل پی اچ پی، روبی، پرل و … برویم. اگر فرض را بر این بگذاریم که به دلایل شخصی و تجاری، زبان برنامه نویسی PHP برنده این بازی گردد، باز هم دو راه پیش رو خواهیم داشت: یا اینکه با Pure PHP شروع به طراحی وب اپلیکیشن خود نماییم و یا اینکه از فریم ورک های مطرح این زبان برنامه نویسی استفاده کنیم. در این مقاله با وبلاگ سکان آکادمی همراه باشید تا به نقد و بررسی برترین فریم ورک های زبان برنامه نویسی پی اچ پی بپردازیم.

به طور کلی، منظور از کدنویسی با Pure PHP این است که بدون استفاده از هیچ کد از پیش نوشته شده و فریم ورکی، خود با استفاده از کلاس‌ها و متدهای این زبان برنامه نویسی محبوب شروع به کدنویسی پروژه کنیم.

در واقع، مزایای استفاده از فریم ورک در بالا آوردن یک سایت دینامیک را می‌توان در صرفه جویی در زمان کدنویسی، نگهداری راحت‌تر پروژه، پیروی از استانداردهای بین المللی، امنیت بیشتر، مرتب بودن کدها، قابل توسعه بودن وب اپلیکیشن و … برشمرد. به طور مثال، ما برای اضافه کردن ماژول لاگین به سایت خود، با استفاده از Pure PHP می بایست کلی کدنویسی کنیم و در عین حال امنیت داده‌های ورودی را نیز چک کنیم اما در حالی است که با استفاده از فریم ورک این کار در مدت زمان به مراتب کمتر، امنیت به مراتب بیشتر و سهولت قابل توجهی امکان‌پذیر است. اکنون که مجاب شدیم استفاده از فریم ورک خوب است، حال می بایست ببینیم از میان تعداد نسبتاً قابل توجه فریم ورک های زبان برنامه نویسی PHP کدامیک را می بایست انتخاب کنیم. در ادامه به بررسی نقاط ضعف و قوت تک تک فریم ورک های محبوب و مطرح PHP در دنیا می‌پردازیم تا در نهایت شما با دید بازتری بتوانید دست به انتخاب یک فریم ورک بزنید.

مقایسه فریم ورک های مطرح زبان برنامه نویسی پی اچ پی

Laravel
فریم ورک لاراول جزو یکی از فریم ورک هایی است که مدت زمان زیادی از انتشار آن نمی‌گذرد اما با استقبال خوبی در میان برنامه نویسان سرتاسر دنیا مواجه شده است و جالب است بدانیم که امسال نیز -سال ۲۰۱۵- این فریم ورک به عنوان محبوب‌ترین فریم ورک پی اچ پی دنیا انتخاب شد. لاراول از ابتدا همواره این شعار را داشته که ساخت وب اپلیکیشن ها با این فریم ورک بسیار سریع و آسان است. این فریم ورک نه تنها رایگان است بلکه متن باز نیز می باشد. به عبارت دیگر، توسعه دهندگان بسته به نیاز خود می‌توانند در این فریم ورک تغییراتی ایجاد کنند و آن را برای مقاصد خویش بهینه‌تر سازند.

در ضمن، در طراحی این فریم ورک از معماری سه لایه MVC استفاده شده است. از این فریم ورک برای ساخت وب اپلیکیشن های تجاری بزرگ و یا سایت‌های شخصی کوچک می‌توان استفاده کرد لذا این فریم ورک مناسب هر نوع وب اپلیکیشنی می باشد. در طراحی این فریم ورک، از تعدادی از کامپوننت های فریم ورک Symphony نیز استفاده شده است. یکی دیگر از خصیصه های این فریم ورک، وب سایت کامل و جامع و همچنین سورس کد مستندسازی شده است که این امکان را به برنامه نویسان می‌دهد تا به راحتی از کلیه کدها سر در بیاورند (اگر علاقمند به این فریم ورک می باشید، تعدادی از برنامه نویسان لاراول تهران گروهی تشکیل داده اند تحت عنوان لاراتاکس که در آن به آموزش و بحث آزاد در مورد این فریم ورک می پردازند.)

مقایسه فریم ورک های مطرح زبان برنامه نویسی پی اچ پی

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

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

مقایسه فریم ورک های مطرح زبان برنامه نویسی پی اچ پی

Symphony
فریم ورک سیمفونی هم جزو فریم ورک هایی است که به خوبی مستندسازی شده است و تحت لیسانس MIT به صورت رایگان عرضه شده است. سیستم مدیریت محتوای دروپال و همچنی phpBB که یکی از سیستم‌های تالار گفتگو است از فریم ورک سیمفونی استفاده می کنند. اگرچه در ابتدا ممکن است ساختار این فریم ورک برای برنامه نویسان -به خصوص برنامه نویسان تازه کار- گیج‌کننده باشد اما این در حالی است که اگر کسی مبانی زبان‌های پی اچ پی و اچ تی ام ال را بلد بوده و با مفاهیمی همچون MVC آشنایی داشته و نحوه کار با دیتابیس را نیز بلد باشد، گفته می‌شود که یادگیری نحوه کار با این فریم ورک خیلی سریع اتفاق می افتد.

مقایسه فریم ورک های مطرح زبان برنامه نویسی پی اچ پی

Yii
نام این فریم ورک مخفف واژگان Yes It Is است که جزو یک از فریم ورک های سریع، ایمن و حرفه‌ای و در عین حال MVC زبان برنامه نویسی پی اچ پی محسوب می گردد. برنامه نویسان اگر قصد استفاده از فریم ورک Yii را دارند می بایست بدانند که این فریم ورک به گونه‌ای طراحی شده است که می‌توان آن را با سایر فریم ورک ها نیز ادغام نمود. یکی از برگ برنده های این فریم ورک، پشتبانی حرفه‌ای از AJAX است و امنیت بالا است.

مقایسه فریم ورک های مطرح زبان برنامه نویسی پی اچ پی

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

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

مقایسه فریم ورک های مطرح زبان برنامه نویسی پی اچ پی

CakePHP
گفته می‌شود که با استفاده از کیک پی اچ پی، با حداقل کدنویسی می‌توان به قابلیت‌های منحصر به فردی دست یافت. برای شروع کار با این فریم ورک، برنامه نویسان نیاز به تنظیمات خاصی نداشته و صرفاً نیاز دارند تا دیتابیس خود را آماده ساخته و سپس شروع به کدنویسی کنند. این فریم ورک تحت لیسانس MIT است، لذا به سهولت می‌توان از این فریم ورک برای وب اپلیکیشن های عمومی استفاده نمود. قابلیت‌هایی همچون تصدیق اطلاعات ورودی کاربران، CSRF، SQL Injection و حملات XSS که در دل این فریم ورک گنجانده شده ضامن امنیت وب اپلیکیشن های نوشته شده با این فریم ورک خواهد بود.

مقایسه فریم ورک های مطرح زبان برنامه نویسی پی اچ پی

Zend
این فریم ورک توسط شرکت Zend Technologies توسعه داده شده است که این شرکت به عنوان توسعه‌دهنده اصلی خود زبان برنامه نویسی پی اچ پی نیز می باشد. فریم ورک زند که در حال حاضر نسخه ۲ آن به دنیا عرضه شده است یک فریم ورک متن باز، سه لایه و بسیار قدرتمند است. شما در طراحی وب اپلیکیشن ها با استفاده از زند می‌توانید صرفاً آن کامپوننت هایی که نیاز دارید را فراخوانی کنید لذا سرعت وب اپلیکیشن شما تاحدودی ارتقاء خواهد یافت.

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

مقایسه فریم ورک های مطرح زبان برنامه نویسی پی اچ پی

Kohana
کوهانا یک فریم ورک پی اچ پی شیئ گرا است که بر اساس قابلیت‌های زبان PHP نسخه ۵ نوشته شده است که قابلیت‌های نسبتاً خوبی در اختیار برنامه نویسی قرار می‌دهد که از آن جمله می‌توان به ابزارهای ترجمه، دسترسی به دیتابیس، رمزنگاری داده ها، تصدیق فرم و … اشاره کرد. در عین حال، سرعت وب اپلیکیشن های نوشته شده با این فریم ورک نسبت به سایر فریم ورک های این لیست هم قابل قبول است. لذا اگر سرعت برای شما مهم است، این فریم ورک را به شما توصیه می کنیم.

فریم ورک اسلیم پی اچ پی

Slim
این فریم ورک جزو فریم ورک های بسیار کم حجم است که لقب Micro-framework به آن داده شده است. اگر به دنبال یک فریم ورک کوچک، جمع و جور اما در عین حال قدرتمند می گردید، Slim را به شما توصیه می کنیم. نصب و تنظیمات این فریم ورک بسیار آسان و سریع است. از جمله سایر میکرو فریم ورک هایی که رقیبی برای اسلیم محسوب می‌شوند می‌توان به Silex, Limonade و Flight اشاره کرد. جالب است بدانیم که این فریم ورک از لحاظ عملکرد، در تست های انجام شده پس از فریم ورک فالکون قرار گرفته است یعنی فریم ورکی بسیار سریع است.

مقایسه فریم ورک های مطرح زبان برنامه نویسی پی اچ پی

FuelPHP
فیول پی اچ پی یک فریم ورک سه لایه MVC است که از معماری HMVC نیز پشتیبانی می‌کند که برای استفاده از آن نیاز به پی اچ پی نسخه 5.3 به بالا خواهید داشت. همچون فریم ورک زند، از این فریم ورک نیز می‌توان به صورت ماژولار استفاده نمود و کدهایی که می نویسیم را در سایر پروژه ها مورد استفاده قرار داد. نکات امنیتی هم در این فریم ورک به خوبی رعایت شده‌اند به این شکل که حملات ایکس اس اس، سی اس آر اف و همچنین SQL Injection به خوبی مهار می شوند.

مقایسه فریم ورک های مطرح زبان برنامه نویسی پی اچ پی

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

0


بهزاد مرادی

از جمله علائقم می‌شه به نشر علم،‌ سرمایه‌گذاری روی نسل آینده، برنامه‌نویسی به خصوص زبان PHP و جامعهٔ اپن‌سورس و همچنین راه‌اندازی استارتاپ و کارآفرینی اشاره کرد و اعتقاد دارم که سکان آکادمی می‌تونه بستری باشه که از اون طریق به علائقم جامهٔ عمل بپوشونم!






از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)