پیاچپی شناخته ترین و پرکاربردترین زبان برنامه نویسی سمت سرور است. امروزه برنامه نویسی تحت وب نیاز دارند تا با استفاده از ابزارهایی، برنامههای پیچیده و بزرگ تحت وب را تهیه و مدیریت کنند که این کار گاهی اوقات نیاز به صرف زمان و انرژی زیادی پیدا میکند. فریم ورک ها، ابزاری مناسب برای حل این مشکل برای برنامه نویسان هستند.
در این مقاله به بررسی ۱۰ فریم ورک پرکاربرد برای زبان پیاچپی می پردازیم.
چرا از فریم ورک ها استفاده کنیم؟
قبل از بررسی فریم ورک ها ابتدا اجازه بدید به این موضوع بپردازیم که که چر برنامه نویسان تمایل دارند از فریم ورک ها استفاده کنند و چطور استفاده از فریم ورکها باعث بهبود عملکرد برنامه نویسی می شود. به صورت خلاصه می توان به موارد زیر اشاره کرد:
- استفاده از فریم ورک ها، سرعت توسعه نرم افزار/وب سایتهای اینترنتی را افزایش میدهند
- استفاده از فریم ورک ها، باعث ایجاد کدها قابل استفاده مجدد، مرتب و قابل مدیریت میشوند
- استفاده از فریم ورک ها، اجازه توسعه بیشتر نرم افزار/سایت اینترنتی را به توسعه دهندگان میدهند
- استفاده از فریم ورک ها، امنیت لازم در سطوح پایینتر توسعه نرمافزار را فراهم میکند
- استفاده از فریم ورک ها، از مدل-ویو-کنترلر MVC پیروی میکند و باعث تسهیل در جداسازی هر یک از لایه ها از یکدیگر میشود
- استفاده از فریم ورک ها، باعث بهبود مهارت در استفاده از روشهای نوین مهندسی نرمافزار مانند استفاده از شی گرائی میشود
۱- لاراول (فریم ورک مورد علاقه من!)
هرچند لاراول گزینه تقریباً تازه واردی در بین سایر فریم ورک ها است اما بر اساس نظر سنجی سایت sitepoint، پر طرفدارترین فریم ورک در بین توسعه دهندگان نرم افزارهای تحت وب است. لاراول دارای اکوسیستم بزرگی از افزونه ها و فایلهای ویدئوی آموزشی است.
لاراول ویژگیهای بسیاری دارد که باعث افزایش سرعت توسعه نرمافزار می شوند. لاراول از سیستم تمپلیت اختصاصی به نام Blade استفاده میکند و مجموعه قابل توجهی از ویژگی ها مانند احراز هویت کاربران، مدیریت sessionها، صف بندی و مدیریت کش و مسیردهی Restful دارد.
۲- سمفونی
کامپوننت های فریم ورک سمفونی ۲ در پروژه های بزرگی همچون دروپال یا phpBB استفاده میشود یا حتی لاراول بر پایه این کامپوننت ها کار می کند. سمفونی، اجتماع بسیار بزرگی از کاربران و توسعه دهندگان دارد که از این فریم ورک استفاده می کنند.
کامپوننت های سمفونی، مجموعه بزرگی از کتابخانهها (library) قابل استفاده مجدد هستند که به آسانی قابل استفاده در پروژه های دیگری همچون اشیای مدیریتی، مسیردهی (روتینگ)، احراز هویت و مدیریت کاربران، سیستم تمپلیت، و بسیاری دیگر هستند. هر کدام از این کامپوننت ها با استفاده از composer قابل نصب و استفاده از پروژه های سمفونی هستند.
۳- کدیگنایتر
کدیگنایتر یک فریم ورک سبک با تقریباً ۱۰ سال سن است(از سال ۲۰۰۶ توسعه داده می شود). کدیگنایتر سادهترین روش نصب و پیکربندی را دارد. همچنین کدیگنایتر بهترین انتخاب برای جلوگیری از اختلال نرمافزار بین نسخه های مختلف پیاچپی است به طوری که به سادگی روی تمام هاست های اشتراکی و پلتفرم ها، نصب و اجرا می شود.
کدیگنایتر از MVC پشتیبانی میکند اما کاربر را ملزم به استفاده از تمام آن! نمی کند، استفاده از کنترلرها اجباری است ولی استفاده از مدل ها و ویوها، اختیاری هستند و برنامه نویس میتواند از روش مورد نظر خود استفاده کند که در نتیجه برنامه نویس آزادی بیشتری در انتخاب و نحوه برنامه نویسی خود دارد. حجم فایل دانلودی کدیگنایتر کمتر از ۳ مگابایت است اما در عین حجم کم، اجازه تولید افزونه های مورد نظر را به برنامه نویس می دهد.
۴- Yii2
در صورتی که از Yii استفاده کنید، میتوانید از سرعت بارگذاری قابل توجه این فریم ورک در پروژه نرم افزاری خود استفاده کنید چون این فریم ورک به شدت از تکنیک lazy loading (لود با تاخیر) استفاده می کند. این فریم ورک یک فریم ورک شی گرا بوده و بر مبنای DRY (خودتون رو تکرار نکنید!) است، بنابراین شما در این فریم ورک با کدهای بسیار منطقی و خوانا (زیبا) رو به رو خواهید بود.
Yii با جی کوئری هماهنگ بوده و به همراه مجموعهای از خصوصیات و امکانات ایجکسی، ارایه میشود و روش آسانی برای اسکین و تولید تمپلیت فراهم می کند، بنابراین میتواند گزینه بسیار مناسبی برای کسانی باشد که قبلاً در زمینه توسعه frontend برنامه نویسی کردهاند.
همچنین این فریم ورک دارای یک تولیدکننده کد بسیار قوی با نام Gii است که امکان تولید کدهای مبتنی بر اشیاء و توسعه سریع را فراهم میآورد و برنامه نویس میتواند به آسانی از طریق رابط تحت وب آن، کدهای مورد نیاز خود را تولید کند.
۵- فالکون
فالکون در سال ۲۰۱۲ منتشر شد و به سرعت توانست بین توسعه دهندگان پیاچپی توسعه پیدا کند. گفته میشود فالکون به اندازه فالکون (نوعی پرنده شکاری) سریع هست زیرا برای دستیابی به بهترین کارایی، با استفاده از زبان برنامه نویسی C++ نوشته شده است. البته برای استفاده از این فریم ورک نیازی به یادگیری زبان سی پلاس پلاس نیست زیرا تمام قسمتهای این فریم ورک به صورت کلاسهای قابل استفاده پیاچپی آماده شدهاند.
فالکون به صورت یک افزونه سی ارایه میشود و نه تنها سرعت اجرای برنامههای پیاچپی را کاهش میدهد بلکه کمترین مقدار ممکن از منابع سیستم را مصرف می کند.
فالکون دارای بخش آموزش و داکیومنت بسیار کاملی بوده و یک فریم ورک آسان است، ارزش یکبار امتحان کردنش رو داره!
۶- کیک پیاچپی
کیک پی اچ پی، هر چند یکی از فریموورکهای قدیمی است (اولین نسخه آن در سال ۲۰۰۵ منتشر شد) اما همچنان یکی از فریمورکهای های پرطرفدار پی اچ پی بوده و همواره توسعه دهندگان آن تلاش کردهاند تا این فریموورک،به روز باشد. آخرین ورژن این فریموورک، یعنی نسخه ۳٫۰ آن، با بهبودهایی در مدیریت session، ماژولار بودن و امکان ایجاد کتابخانههای مستقل، همراه بوده است.
سایتهای مشهوری مانند سایت BMW، Hyundai و Express با کیک پی اچ پی پیادهسازی شدهاند. این فریموورک ابزاری بسیار کارآمدی برای ایجاد وب سایتهای و اپلیکیشن های تحت وب امن، ارایه می دهد، مانند اعتبارسنجی توکار ورودی ها، sql injection، مقابله با XSS، CSRF و بسیاری دیگر.
۷- زند فریموورک
زند یک فریموورک بسیار پایدار و کامل با تعداد بسیار زیادی انواع تنظیمات و پیکربندی ها است و بنابراین برای پروژه های کوچک مناسب نیست در حالی که برای پروژهای بزرگ و پیچیده، انتخاب فوقالعادهای محسوب می شود. زند، شرکایی مانند IBM، میکروسافت، گوگل و ادوبی دارد. آخرین نسخه این فریموورک (نسخه ۳) به صورت کامل برای پی اچ پی نسخه ۷ بهینه سازی خواهد شد در حالیکه همچنان از نسخه ۵.۵ پی اچ پی پشتیبانی خواهد کرد.
نسخه فعلی زند (نسخه ۲) ویژگیهای کارآمدی مانند ابزار اینکریپت، امکان طراحی آلمان های دیداری مانند html با استفاده از درگ-دراپ، دیباگ آنلاین بلافاصله و ابزار یونیت تستینگ، ویزارد اتصال به دیتابیس را دارد.
۸- اسلیم
اسلیم یک میکرو-فریموورک هست که تمام آن چیزی که نیاز خواهید داشت را دارد و هر چیزی که نیاز نخواهید داشت را ندارد! میکرو-فریموورکها، به صورت مینیمال طراحی میشوند و برای نرم افزارهای کوچک، فوقالعاده مناسب هستند. در طراحی اسلیم از میکرو-فریموورک sinatra که یک میکرو فریمورک بر اساس زبان روبی است،الگو برداری شده است.
اسلیم توسط بسیاری از توسعه دهندگان پی اچ پی برای ایجاد نرمافزارها و وب سرویس های restful مورد استفاده قرار می گیرد. اسلیم خصوصیاتی مانند URL-routing، client-side HTTPcaching، اینکریپت کوکی ها، پیامهای فلش در سطح درخواستهای HTTP را دارد.
۹- فول پی اچ پی
فول پیاچپی یم فریموورک منعطف و کامل برای پی اچ پی است که علاوه بر پشتیبانی از مدل توسعه MVC، از HMVC (مدل-ویو-کنترلر سلسله مراتبی) نیز پشتیبانی میکند. FuelPHP از یک کلاس اختیاری به نام Presenter نیز استفاده میکند که بین کنترلر و ویو قرار گرفته و منطق مورد نیاز برای نمایش ویوها را نگه داری میکند.
۱۰ - PHPixie
PHPixie یک فریموورک جدید است و از سال ۲۰۱۲ با هدف ایجاد ابزاری برای توسعه وب سایتهای فقط خواندنی (نمایش اطلاعات) ایجاد شد و همانند FuelPHP از ساختار HMVC پشتیبانی می کند. کامپوننت های PHPixie به صورت ۱۰۰٪ امکان unit-test را دارند و کمترین میزان وابستگی (Dependencies) به سایر قسمتها و ماژول ها را دارند.