آشنایی با فریمورک برنامه نویسی وب php Yii
آشنایی با فریمورک Yii2 و معرفی ویژگیهای آن
فریمورکYii (خوانده می شود یی حرف E کشیده یا Yee) که مخفف yes it is می باشد، یکی از فریمورک های متعدد زبان php است که از سال ۲۰۰۸ فعالیت خود را آغاز کرده است.
از جمله ویژگی های yii می توان به تولید کدهای سریع، ارتباط آسان و مطمئن با دیتابیس، پشتیبانی کامل از ساختار MVC و هزاران ماژول از پیش ساخته شده که به راحتی بر روی آن نصب میشود اشاره کرد.
فریمورک چیست؟
فریمورک ها چهارچوب و ساختار های کدنویسی از پیش تعیین شده ای هستند که برای یک زبان برنامه نویسی خاص توسط بهترین برنامه نویسان جهان بصورت مجموعهای از کدها، ابزارها و… ارائه می شوند و هدف آن آسانتر و سریع تر کردن برنامه نویسی می باشد.
بطور کلی می توان فریمورک را مجموعهای از ابزارها، کتابخانه ها، قرارداد ها و بهترین شیوه ها تعریف کرد، فریمورک ها این امکان را به برنامه نویسان می دهند تا با توابع و کلاس های از پیش تعریف شده، ضمن ایجاد امنیت بیشتر برای برنامهها، از کد کمتری در برنامه های خود استفاده کنند.
فریمورک ها کمک میکنند که ما کدنویسی سریعتر، بهتر، منظم تر و با تمرکز بیشتری داشته باشیم. شما با استفاده از Framework ها میتوانید با سرعت، کیفیت و دقت بیشتری اقدام به توسعه محصولات نرمافزاری کنید.
چرا باید از فریمورک ها استفاده کنیم؟
۱٫چرخ را از اول اختراع نمیکنید
یکی از مهم ترین نکات دربارهی کاربرد فریمورک ها این است که کمک میکند که چرخ را از اول اختراع نکنید. امکانات بسیار زیادی در فریمورک ها از قبل تهیه و برنامه نویسی شده است که باعث میشود که شما کارهای روتین و ابتدایی یک پروژه را رد کنید و مستقیم به سراغ انجام کارهای اصلی پروژه بروید.
اینطور فکر کنید که برای انجام هر پروژهی جدید، شما نیاز هست که بخش زیادی از زمانتان را صرف کارهای حاشیهای، تکراری و روتین کنید و این برای شما به عنوان یک برنامه نویس فاجعه است.
۲٫سرعت کدنویسی بیشتر می شود
یکی دیگر از مزایای فریمورک ها این است که سرعت کدنویسی شما را افزایش میدهند.در فریمورک ها هرگز وقت شما برای کارهای روتین، پیش پا افتاده و بی اهمیت صرف نمیشود. همه مقدمات در فریمورک ها برای شما اماده است که تمام تمرکز خودتان را بر روی منطق (Logic) اصلی کدتان بزارید و به هیچ چیز دیگری فکر نکنید.
۳٫بسیاری از امکانات از قبل وجود دارند
اگر بخواهیم بگوییم که بهترین دلیل وجود فریمورک چیست ، میتوانیم بگوییم امکانات پیش فرض آن است. بسیاری از کارها از قبل توسط فریمورک ها نوشته شده است و شما فقط باید از آنها استفاده کنید.
برای مثال اگر شما بخواهید برای فرم های سرویستان Form Validation داشته باشید و چک کنید که اگر رمز کاربر کمتر از ۵ کاراکتر بود، برای او خطایی نمایش داده شود، اینکار را میتوانید خیلی راحت با قابلیت های پیش فرض فریمورک ها در چند دقیقه پیاده سازی کنید و دیگر نیازی به نوشتن چندین خط کد اضاف ندارید. این باعث میشود که وقت و انرژی بیشتری را ذخیره کنید.
۴٫توابع قابلیت استفادهی مجدد را دارند
نکتهی مهمی که در خصوص فریمورک ها وجود دارد این است که به شما امکان استفادهی مجدد از کدها یا اصطلاحا reuseکردن کد ها را میدهد که این فوق العاده است.
۵٫کدهای منظم تر و بهتری خواهید داشت
بسیاری از فریمورک ها به دلیل استفاده از معماریهایی مثل MVC کمک میکنند که کد بسیار منظم تر و مرتب تری داشته باشید.
خیلی سخت است اگر بخواهید که بدون استفاده از یک فریمورک ، کدی بنویسید که منظم، خوانا، تمیز و قابل فهم برای همگان باشد. اما فریمورک ها به دلیل ساختاری که دارند، این امکان را برای شما فراهم میکنند که کدتان تا حد بسیار زیادی به یک کد منظم و خوانا و غیرکثیف تبدیل شود.
معماری MVC چیست؟
عبارت MVC یا Model View Controller واژه ای است که در هنگام کار کردن با فریمورک ها مورد استفاده قرار می گیرد که یک شکل خاص از ترکیب کد های برنامه نویسی است . در این ساختار کد های برنامه به سه بخش تقسیم می شوند که با تقسیم و طبقه بندی کدها، برنامه به صورت سه لایه مجزا از هم در می آید.
معماری mvc الگویی که به شما کمک می کند تا قسمت های کنترلر ( controller ) و نمایشگر (view) و بالاخره منطق (model) را از یکدیگر جدا کنید. از مزایای آن می توانم به سهولت مدیریت کدها، خطایابی ها و به طور خلاصه توسعه و نگهداری کد ها اشاره کرد.
بخش Model کار ذخیره و بازیابی اطلاعات را بر عهده دارد و بخش View وظیفه ی نمایش اطلاعات به کاربر را بر عهده دارد و بخش Controller دریافت اطلاعات از کاربر و پردازش را بر عهده دارد .
ویژگیهای فریمورک Yii
۱٫استفاده از قابلیت کامپوننت
با استفاده از Component ها می توانید بخش های جدیدی به Yii اضافه کنید، و یا Component های خود Yii را تغییر دهید.فریمورک Yii برای نشان دادن قدرت کامپوننت ها، حین نصب، تعدادی کامپوننت بسیار کاربردی را در اختیار شما می گذارد.همچنین حین اجرای وب اپلیکیشن از آن کامپوننت ها استفاده میکند.
برای مثال می توان به کامپوننت های ذیل اشاره نمود:
- User
- Catch
- Log
- UrlManager
- Db
- View
هر برنامه نویسی می تواند بی نهایت کامپوننت به برنامه ی خود اضافه کند یا هر یک از کامپوننت های اصلی Yii را با کامپوننت های خودش جایگزین کند.
۲٫سازگاری فریمورک Yii با دیگر فریمورکهای PHP
گاهی گفته میشود که یک فریمورک به صورت متن باز است و این راهی است که امکان توسعه آن را میدهد. اما گاهی اوقات در کنار متن باز بودن، یک فریمورک با دیگر فریمورکها، هماهنگی و سازگاری دارد که این عامل کمک میکند که بتوانیم از فریمورکهای دیگر نیز جهت توسعه بهتر در فریمورک موردنظر، استفاده کنیم.
۳٫برخورداری از یک سیستمcaching قوی
فریمورک Yii یک سیستم catch بسیار کاربردی و پیشرفته برای توسعه دهندگان تعبیه نموده است، که دست شما را برای اعمال هر نوع محدودیت یا تنظیمی باز می گذارد.
۴٫ استفاده از ماژول Gii
ماژول Gii در واقع یک سامانه ی کدنویسی خودکار هست که با دریافت جداول مورد نظر شما در بانک داده، همه ی کلاس های مدل و کنترلر و فایل های ویو را برای شما در چند ثانیه برنامه نویسی می کند.
این ماژول قابلیت های ذیل را به توسعه دهندگان می دهد:
- ایجاد کلاس های مدل مربوط به جدول
- ایجاد کلاس های کنترلر به همراه اکشن ها و چهار عمل اصلی ثبت داده، ویرایش داده، نمایش داده های یک ردیف، جست و جو بین داده ها که به اختصار CRUD نامیده می شود.
- ایجاد فایل های ویو و بصری سازی داده های داخل جداول بانک داده
- ایجاد فایل های migration که برای ساخت جداول پایگاه داده از روی کلاس های برنامه نویسی شده کاربرد دارد
- ایجاد فرم ها
- ایجاد ماژول های جدید برای برنامه نویسی ماژولار
- استفاده از سیستم ترجمه در فایل های نوشته شده در صورت نیاز توسعه دهنده، به توسعه ی اسکریپت های چندزبانه
- قابلیت توسعه و نوشتن افزونه های شخصی برای ماژول Gii
- قابلیت استفاده از قالب های شخصی سازی شده برای ماژول Gii
۵٫مالتی اپلیکیشن Yii Advance
فریمورک yii دارای ۲ نوع بسته مختلف برای ساخت وب اپلیکیشن های پیچیده و ساده را تحت عنوان Yii Basic و Yii Advance ارائه میدهد که در هسته تفاوت هایی ندارند فقط در قالب تفاوت دارند.
در نسخه ی Advance ، شما میتوانید چندین وب اپلیکیشن جدا داشته باشید، که همگی با هم یکپارچه هستند.
برای مثال پروژه ی یک فروشگاه اینترنتی پیچیده را در نظر بگیرید که شامل چند برنامه به شرح ذیل است:
فرانت اند سایت(بخشی که کاربران میهمان با آن کار میکنند، در واقع ویترین فروشگاه)
- بک اند سایت(پنل مدیریت سایت)
- پروفایل کاربران
- پنل فروشندگان و تامین کنندگان
- هر یک از بخش های بالا در واقع فرآیند های خاص خود را دارند.
شما میتوانید با Yii Advance چندین برنامه در ساب دامین یا پوشه های مختلف ایجاد کنید که همگی به هم متصل هستند، اما مستقل از یکدیگر عمل میکنند و همچنین امکان فعال یا غیر فعال سازی یک ماژول یا کامپوننت در برنامه های مختلف را دارا است.
۶٫امنیت فریمورک Yii
اینکه شما در زمان کار با فریمورک Yii، یک سری داده را در زمان ورود بررسی کنید و در زمان خروج نیز از یک سیستم فیلتربندی استفاده کنید و نیز در کنار این اتفاقات از قابلیتهایی استفاده کنید تا شما را در برابر حملات به پایگاه داده (اصطلاحاً به این حملات، SQL Injection گفته میشود که فرد حملهکننده، میتواند در پایگاه داده، بسیاری از اطلاعات شما نظیر رمزهای عبور و غیره را سرقت کرده، ضمن اینکه میتواند ساختارهای مخرب را نیز به آن اضافه کند) حفاظت کند، قطعاً میتواند ما را مجاب به امنیت بالای فریمورک Yiiکند.
۷٫مدیریت قویAsset ها
در اغلب فریمورک هایPHP شما باید به طور دستی وجود یا عدم وجود فایل های js و css را مدیریت کنید آن هم با شرط و شروط مختلف که باید خودتان بنویسید.
اما درYii داستان متفاوت است، شما می توانید Assetها را با Asset Manager مدیریت کنید، اگر هم علاقه ای به استفاده ازAsset Manager ندارید، میتوانید به صورت دستی این کار را انجام دهید.
با این قابلیت، شما می توانید وجود تعدادی از Asset ها را به وجود Asset های دیگر وابسته کنید.
مثلا میتوانید به yii2 بگویید، ابتدا jQuery را در Html نهایی بارگذاری کند و سپس Asset های شما را در Html نهایی قرار دهد. برای اطلاعات بیشتر در این مورد می توانید از سایت Yii کمک بگیرید.
جمع بندی
نمیتوان گفت که استفاده از عبارتهایی همچون fast و security برای این فریمورک در وب سایت Yii، اغراق است. در این مقاله، ویژگی هایی این فریمورک را تا حدی بررسی کردیم. تقریباً تمامی این ویژگیها باعث شکلگیری فاکتور سرعت و امنیت برای این فریمورک حرفهای PHP شده است. اگر به امنیت و سرعت برنامه تحت وب خود اهمیت میدهید، فریمورک Yii میتواند گزینه مناسبی برای بررسی کردن باشد.
آشنایی با فریمورک برنامه نویسی وب php Yii
منبع: کُرند