فریم ورک در اصطلاح به معنای چارچوب نرم افزاری است.
که انواع مختلفی دارد در اینجا به معرفی فریم ورک پی اچ پیphp framework) )می پردازیم.
فریم ورک های مطرح و پرکاربرد php:
1. Laravel:
لاراول یک فریم ورک جدید محسوب میشود که به خوبی توانسته است جای پای خود را بینتوسعه دهندگان وب محکم کند. این فریمورک با ترکیب بهترین روشهای برنامهنویسی و با استفاده از کتابخانههای محبوب php و در عین حال ایجاد فرآیندها و ساختاری منحصر به فرد توانسته به عنوان محبوبترین فریمورک برنامهنویسی به زبان php مطرح شود.یکی از ویژگی های منحصر به فرد لاراول استفاده از توابعی جهت بهره مندی از سئو در وب میباشد به صورتی که با بهینه سازی توابع و توابع منحصر سئو به راحتی میتوانید در موتور های جستجو معرفی و سایت خود را ارتقاع دهید.در زیر به برخی دیگر از ویژگی های لاراول که بیشتر برای اپلیکیشن های تحت وب مفید و کاربردی است میپردازیم :
- مسیریابی قابل برگشت بر مبنای RestFul
- کد نویسی تمیز و شسته رفته
- دارای ابزار پیشرفته
- دارای تکنولوژی Elequent ORM
- واجد تست
- پشتیبانی درونی از IoC (کنترل معکوس)
جالب است بدانیم که معمولاً به عنوان محبوبترین فریمورک پیاچپی از دید دولوپرها انتخاب میشود.
این فریمورک اپنسورس و رایگان از ابتدا همواره این شعار را داشته که «ساخت وب اپلیکیشنها با این فریمورک بسیار سریع و آسان است» مضاف بر اینکه در طراحی این فریمورک از معماری MVC استفاده شده است که همین مسئله آن را برای ساخت وب اپلیکیشنهای تجاری بزرگ مناسب میسازد (البته در عین حال پروژههای کوچک نیز میتوان با آن پیادهسازی کرد.)
در طراحی این فریمورک، از تعدادی کامپوننتهای فریمورک Symfony نیز استفاده شده است که در ادامه بیشتر با این فریمورک آشنا خواهید شد. یکی دیگر از خصیصههای این فریمورک، وبسایت کامل و جامع و همچنین سورسکدی است که به خوبی مستندسازی شده است که این امکان را به برنامهنویسان میدهد تا به راحتی از کلیه کدها سر در بیاورند (علاوه بر مستندات رسمی این فریمورک، Laracasts هم مجموعه ویدیوهای ارزشمندی است که شروع کار با این فریمورک را تسهیل میسازد)
در کنار Laravel، فریمورک دیگری تحت عنوان Lumen عرضه شده است که با هدف بهینهسازی بیشتر لاراول برای پروژههایی که پرفورمنس آنها حائز اهمیت میباشد طراحی شده است.
2. codelgniter:
این فریم ورک وب متن باز خیلی سبک است و به توسعه دهندگان در ساخت سریع صفحات وب داینامیک کمک می کند. مستندات جامع و طبیعت انعطاف پذیر فوق العاده آن یادگیری این میکرو فریم ورک را خیلی ساده کرده است. از ویژگی های مهم این فریم ورک سبک بودن و در نتیجه سریع بودن آن است به گونه ای که توابع آ« به بهترین شکل مکن بهینه و بالاتر از استاندارد قرار گرفته اند و دیگیر ویژگی منحصر به فرد آن یاد گیری سریع آن است به دلیل ارائه ی مستندات کامل کد ها و کتابخانه ها برنامه نویسان خیلی راحت میتوانند از این فریم ورک بهره مند شوند.در زیر به برخی دیگر از ویژگی های این فریم ورک محبوب میپردازیم:
- ارائه یک کنترل شفت انگیز
- یادگیری آسان از طریق مستندات
- هاست استاندارد برای سازگاری بهتر(بعضی از هاست ها وجود دارند که برای استفاده از این فریم ورک پیکر بندی شده اند)
- تقریبا به پیکر بندی نیاز ندارد
- کتابخانه های یکپارچه در مقیاس بزرگ
- استفاده خیلی کم از منابع(ویژگی ردپای کوچک یا small footprint)
3. CakePHP:
این فریم ورک بر اساس Model-View-Controller و یا همان MVC کار می کند. و به دلیل سبک بودن سرعت زیادی در کدنویسی ایجاد میکند و برنامه نویسان میتوانند در پروژه های بزرگ خود از آن استفاده کنند.
از ویژگی های منحصر به فرد این فریم ورک میتوان به تعامل بدون شکاف با با بانک اطلاعاتی بر اساس ویژگی CURD اشاره نمود .به برخی دیگر از ویژگی های این فریم ورک سبک در زیر میپردازیم:
- کد نویسی حداقل
- بدون نیاز به XML و یا YAML برای پیکربندی دیتابیس
- ویژگی تایید و احراز هویت
- عملکردهای پیشرفته مثل دسترسی بانک اطلاعات و دسترسی ترجمه
- امنیت قوی در برابر SQL Injection و CSRF
4. Symphony:
از فریم ورک های بسیار قوی و تخصصی php میباشد که بسیاری از برنامه نویسان php برای پروژه های بزرگ و پیچیده ی خود از آن استفاده میکنند از خصوصیات این فریم ورک میتوان به مقیاس بندی و انعطاف بالا که نتیجه ی آن استفاده راحت تر و باز تر برنامه نویس و توسعه دهنده برای به کار گیری مهارت های گوناگون برنامه نویس در انجام پروژه ها میباشد. همان طور که گفته شد این فریم ورک نسبت به فریم ورک های دیگر قویتر و منعطف تر میباشد و مهارت های بیشتری را برای استفاده از آن نیاز دارید ازجمله تسلط به php۵ ، شی گرایی در پی اچ پی، ORM ، کنسول و …. میباشد.
برخی از ویژگی های این فریم عبارتند از:
- فایل انعطاف برای نیازهای توسعه دهندگان
- به توسعه دهندگان اجازه می دهد تا از آن به عنوان یک میکرو فریم ورک استفاده کنند
- توسعه دهندگان به سادگی قادر به سفارشی سازی هستند.
- مستندات جامع این فریم ورک به یادگیری آسان آن کمک می کند.
- دارای قایلیت توسعه بالا برای توسعه وب بهتر
فریمورک سیمفونی هم جزو فریمورکهایی است که به خوبی مستندسازی شده است و تحت لیسانس MIT به صورت رایگان عرضه شده است. سیستم مدیریت محتوای Drupal و همچنین phpBB، که یکی از سیستمهای تالار گفتگو است، از فریمورک سیمفونی استفاده میکنند.
5. Yii:
Yii Framework یکی از جدیدترین فریمورک های مبتنی بر PHP است که با ارائه امکانات بیشتر، راحتی در استفاده و محصول نهایی سریع تر، در حال کنار زدن رقبای خود و تبدیل شدن به محبوب ترین و پرکاربردترین فریم ورک مبتنی بر PHP است . Yii یک فریم ورک مبتنی بر component و به دلیل پشتیبانی از بحث caching مناسب برای ساخت سایت های پر ترافیک مثل پورتال ها و فروم ها و CMS ها و .. می باشد. توانایی گسترش و توسعه و ارتباط آسان بین دیگر فریم ورک ها و پشتیبانی از ajax را نیز می توان از جمله قابلیت های این فریم ورک نام برد. به دلیل عملکرد فوق العاده بهینه، Yii یک انتخاب ایده آل برای هر پروژه ای با هر اندازه است، هرچند که با دیدگاهی سازمانی و پیچیده ساخته شده است.
استفاده از فریمورک های PHP مزایای زیادی دارد ، مهترین مزیت آن این است که کدهای شما شکل استانداردی به خود میگرد و همچنین سرعت و سطح برنامه نویسی شما بالا میرود . پس انتخاب یک فریمورک بستگی به سلیقه ، درآمد و شرایط و منطقه فعالیت شما دارد ، اما انتخاب یکی از این فریمورک ها و انجام پروژه با آن ها نسبتا امری الزامیست ، گرچه می توانید فریمورک خاصی هم قدرتمند کار کنید اما مزایایی که این فریمورک ها ایجاد می کنند غیر قابل چشم پوشی بوده و کار با آن ها منطقی به نظر می رسد
6. Zend:
یکی دیگر از فریم ورک های قدرتمند Zend Framework میباشد که فریمورکی بسیار امن و قابل اطمینان است. این فریمورک اساسا یک فریم ورک ساخته شده با زبان PHP است که از API های بسیاری از پیشگامان برنامه های مبتنی بر وب از جمله Google، Amazon، Yahoo، Flicker و … بهره می برد که این فریم ورک را برای توسعه برنامه های تجاری بسیار مطلوب و مناسب کرده است.
7. .phalcon:
در میان کلیهٔ فریمورکهای پیاچپی، فالکون لقب سریعترین فریمورک را به خود اختصاص داده است و اگر در صدد طراحی وب اپلیکیشنی هستید که سرعت اجرای آن برای شما حائز اهمیت میباشد، یکی از بهترین گزینههای پیش روی شما فریمورک فالکون خواهد بود.
پایه و اساس این فریمورک با زبان برنامهنویسی C نوشته شده است. با توجه به اینکه فالکون با زبان سی نوشته شده است، نه تنها سرعت آن بسیار بالا است، بلکه منابع سختافزاری اندکی نیز استفاده میکند (طبقه گفتهٔ سایت رسمی این فریمورک، فالکون یک اِکستنشن برای زبان سی است.) نیاز به توضیح نیست که PHP یک زبان تفسیری است اما کدی که با این فریمورک زده میشود، کامپایل میشود که این به یمن استفاده از Zephir امکانپذیر شده است.
همچنین نیاز به توضیح است که این فریمورک اصطلاحاً Loosely Coupled است. به عبارت دیگر، کامپوننتهای مختلف این فریمورک به گونهای نوشته شدهاند که برای اجرا نیاز حداقلی به سایر کامپوننتها دارند و همین مسأله منجر میشود تا دست برنامهنویسان در استفاده از کلیهٔ کامپوننتها و یا بخشی از آنها بازتر گردد.
8.Slim:
پیش از این با میکرو فریمورکی تحت عنوان Lumen آشنا شدیم که مبتنی بر Laravel است اما اگر به دنبال میکرو فریمورک دیگری میگردید که سبُک و در عین حال کاربردی باشد، Slim گزینهٔ خوبی است (از جمله سایر میکرو فریمورکهایی که رقیبی برای اِسلیم محسوب میشوند میتوان به Silex ،Limonade و Flight اشاره کرد.)
نصب و تنظیمات این فریمورک بسیار آسان و سریع است. جالب است بدانیم که این فریمورک بر اساس بنچمارکها، از لحاظ کارایی و پرفرومنس پس از فریمورک فالکون قرار گرفته است. به عبارتی، فریمورکی سریع است.
9.fuelPHP:
این فریمورک مبتنی بر معماری MVC از معماری HMVC نیز پشتیبانی میکند که برای استفاده از آن نیاز به نسخهٔ 5.4.0 PHP به بالا خواهید داشت.
همچون فریمورک زند، از این فریمورک نیز میتوان به صورت ماژولار استفاده نمود و کدهایی که مینویسیم را در سایر پروژهها مورد استفاده قرار داد.
در انتخاب یک فریمورک چه معیارهایی را باید رعایت کرد؟
به جز نوع پروژهای که قرار است کدنویسی کنیم، یکسری معیارهای دیگر نیز هستند که با مد نظر قرار دادن آنها میتوانیم این تضمین را ایجاد کنیم که در پروسهٔ تصمیمگیری کمتر دچار اشتباه شویم که برخی از مهمترین آنها عبارتند از:
قدمت:
محبوبیت و تعداد توسعهدهندگان: هرچه تعداد دولوپرها و کاربران یک فریمورک بیشتر باشد، احتمال اینکه آن فریمورک موفقتر باشد، باگهایش سریعتر رفع شوند و در بازههای زمانی کوتاهتری آپدیت شود هم بیشتر خواهد بود.
– ساپورت:
یکی از چیزهایی که در انتخاب یک فریمورک باید مد نظر قرار داد، راهکارهایی است که از آن طریق میتوان پشتیبانی گرفت که از آن جمله میتوان به مستندات سایت رسمی پروژه و همچنین پرسش و پاسخهای سایتهایی همچون استک اورفلو اشاره کرد.
– تکنیکهای بهکاررفته در فریمورک: اینکه فریمورکی بر اساس استانداردها، دیزاین پترنها و دیگر اصول توسعهٔ نرمافزار طراحی شده باشد بسیار حائز اهمیت است.
– امنیت:
هر وب اپلیکیشنی میتواند در معرض آسیبپذیری قرار گیرد و در همین راستا توصیه میشود فریمورکی را در توسعهٔ نرمافزار به کار گرفت که تا حد قابلتوجهی جلوی آسیبپذیریها را به صورت پیشفرض گرفته باشد (نیاز به توضیح نیست به هر میزان هم که فریمورکی ایمن باشد، کدنویسی غیراصولی میتواند به سادگی وب اپلیکیشن را آسیبپذیر سازد.)
– یافتن آسان دولوپر:
اگر قرار است پروژهای بزرگ را شروع به توسعه کنید، نکتهای که بسیار حائز اهمیت میباشد این است که دولوپرهای مسلط به فناوریهایی که به خدمت میگیرید باید به سادگی یافت شوند که در غیر این صورت، در ادامهٔ توسعهٔ پروژه به مشکل خواهید خورد (به طور مثال، از میان فریمورکهای فوقالذکر، دولوپرهای بسیاری برای لاراول آماده به کار هستند.)
با سلام، برای یادگیری فریم ورک Laravel چه منبعی رو پیشنهاد میکنید؟
کد نویسی تمیز و شسته رفته داره و خیلی خوبه چون هم زمان کمتری میبره هم خوانایی بیشتره میتونه داشته باشه
برای برنامه نویسی های گسترده کدوم فریم ورک کاربردی تره؟
برای برنامه نویسی های بزرگ کدوم فریم ورک میتونه کاربردی تر باشه؟