yii framework

همیشه برای من این سوال وجود داشته که چطور تعداد برنامه نویسان Laravel از Yii2 بیشتر هست در حالی که از نظر کارایی و سرعت برای من به اثبات رسیده است، که فریم ورک yii2 برتر است.

اگر شما قصد دارید یادگیری یک فریم ورک جدید برای زبان PHP را شروع کنید، پس از اندکی تحقیق متوجه خواهید شد Laravel یک فریم ورک بسیار محبوب در حوزه ی وب است.

پس شاید تصمیم شما بر این باشد تا فصل جدیدی را با لاراول شروع کنید.

اما من به شما میگویم محبوبیت برتری نمی آورد.

چیزی که یک فریم ورک را از دیگری متمایز میکند، انسجام در توسعه و کارایی آن است.

yii framework

 بنده پس از سال ها تجربه در برنامه نویسی برای همه ی فریم ورک ها و CMS های زبان PHP مخصوصا فعالیت حرفه ای با فریم ورک Yii2 در این مقاله به شما توصیه میکنم از فریم ورک Yii2 استفاده کنید.

 دلیل اول : ماژول کاربردی Gii

شاید مهم ترین دلیل من برای اینکه به شما توصیه کنم از فریم ورک Yii2 استفاده کنید، ماژول کاربردی GII باشد.

این ماژول در کمتر فریم ورکی دیده میشود که توسط توسعه دهندگان Yii ساخته شده است.

سوال اصلی اینجاست:

 ماژول Gii چیست؟

ماژول Gii

ماژول Gii در واقع یک سامانه ی کدنویسی خودکار هست که با دریافت جداول مورد نظر شما در بانک داده، همه ی کلاس های مدل و کنترلر و فایل های ویو را برای شما در چند ثانیه برنامه نویسی می کند.

این ماژول قابلیت های ذیل را به توسعه دهندگان می دهد:

  • ایجاد کلاس های مدل مربوط به جدول
  • ایجاد کلاس های کنترلر به همراه اکشن ها و چهار عمل اصلی ثبت داده، ویرایش داده، نمایش داده های یک ردیف، جست و جو بین داده ها که به اختصار CRUD نامیده می شود.
  • ایجاد فایل های ویو و بصری سازی داده های داخل جداول بانک داده
  • ایجاد فایل های migration که برای ساخت جداول پایگاه داده از روی کلاس های برنامه نویسی شده کاربرد دارد
  • ایجاد فرم ها
  • ایجاد ماژول های جدید برای برنامه نویسی ماژولار
  • استفاده از سیستم ترجمه در فایل های نوشته شده در صورت نیاز توسعه دهنده، به توسعه ی اسکریپت های چندزبانه
  • قابلیت توسعه و نوشتن افزونه های شخصی برای ماژول Gii
  • قابلیت استفاده از قالب های شخصی سازی شده برای Gii
  • پشتیبانی و توسعه ی مداوم توسط توسعه دهندگان فریم ورک Yii2

دلیل دوم: داشتن همه ی امکاناتی که فریم ورک هایی مانند لاراول در ۶ نسخه به آنها رسیده اند، آن هم تنها با ۲ نسخه

فریم ورک Yii2 در واقع هر آنچه برای برنامه نویسی مدرن نیاز داشته باشید به شما می دهد.

از جمله :

  • سیستم های مدیریت قالب (Template Generator)
  • کامپوزر برای مدیریت سورس های شخص ثالث
  • ولیدیت خودکار فرم ها
  • یکپارچگی در مدل ها و ویو ها و کنترلر ها
  • سیستم مدیریت دسترسی RBAC
  • پشتیبانی از رست فول و نوشتن API
  • پشتیبانی از فریم ورک های مدرن جاوا اسکریپتی
  • پشتیبانی از سیستم های تست کد مانند Codeception
  • پشتیبانی از فن آوری های دیباگ سایت مانند XDebug
  • پشتیبانی از آخرین نسخه ی سیستم مدیریت فضاهای نامی PSR-4
  • سیستم دیباگینگ و گزارش دهی خطای مدرن و قوی
  • دارای حالت های Basic و Advanced

دلیل سوم: فریم ورک Yii2 بسیار قابل گسترش است

برای هر توسعه دهنده ای مهم است تا بتواند به راحتی بخش های مهم برنامه ی خود را با قرار دادن ریز فرآیندها و کلاس های مرکزی تغییر و یا گسترش دهد.

شاید از این مقاله خوشتون بیاد:  سایت عصر جدید و ناگفته هایش برای برنامه نویس ها

با استفاده از Component ها می توانید بخش های جدیدی به Yii اضافه کنید، و یا Component های خود Yii را تغییر دهید.

فریم ورک Yii برای نشان دادن قدرت کامپوننت ها، حین نصب، تعدادی کامپوننت بسیار کاربردی را در اختیار شما می گذارد.

همچنین حین اجرای وب اپلیکیشن از آن کامپوننت ها استفاده میکند.

برای مثال می توان به کامپوننت های ذیل اشاره نمود:

  • User
  • Catch
  • Log
  • UrlManager
  • Db
  • View

هر برنامه نویسی می تواند بی نهایت کامپوننت به برنامه ی خود اضافه کند یا هر یک از کامپوننت های اصلی Yii را با کامپوننت های خودش جایگزین کند.

دلیل چهارم: Yii کمک می کند وبسایت های سریع تری داشته باشید

اغلب سایت هایی که با فریم ورک ها ساخته می شوند، معمولا سنگین تر از سایت هایی هستند که بدون فریم ورک توسعه پیدا میکنند، البته این تا حدودی بستگی به سبک برنامه نویسی سایت نیز دارد.

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

برای همین، فریم ورک Yii یک سیستم catch بسیار کاربردی و پیشرفته برای توسعه دهندگان تعبیه نموده است، که دست شما را برای اعمال هر نوع محدودیت یا تنظیمی باز می گذارد.

دلیل پنجم: Kartik-v توسعه دهنده ای که همه می شناسند

Kartik Visweswaran

در هر سیستم اوپن سورسی که تولید می شود، تعدادی از توسعه دهندگان آنقدر فعال هستند و نقش کلیدی در توسعه ی امکانات و تکنیک های آن سیستم دارند، که برای دیگر توسعه دهندگان مثال زدنی می شوند.

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

یکی از معروف ترین توسعه دهندگان افزونه های جانبی Yii مردی هندی ملقب به kartik-v هست که افزونه هایی را برای Yii تولید نموده است که استفاده از آنها سرعت برنامه نویسی را چندین برابر می کند.

یکی از چیزهایی که باعث می شود من از فریم ورک دیگری برای PHP استفاده نکنم، افزونه های فوق العاده ای هست که برای Yii توسط افرادی مانند Kartik-v تولید شده است، ضمن اینکه خود من چندین افزونه برای  استفاده در پروژه هایم تولید نموده ام.

دلیل ششم: آپدیت ها در قالب افزونه ها

آپدیت شدن دیر به دیر Yii برای من امنیت زیادی ایجاد میکند.

دلیلش این است که فریم ورک هایی مانند لاراول هر چند ماه یک بروزرسانی اساسی ارائه می دهند، گاهی در طول یک سال ممکن است دو یا سه بروزرسانی اساسی ارائه شود، که تغییرات زیادی در هسته ی فریم ورک را شامل می شوند، لذا ممکن است شکاف زیادی در بین برنامه نویسان لاراول که از نسخه های قبلی و جدید استفاده میکنند ایجاد کند.

شاید از این مقاله خوشتون بیاد:  ویندوز تحت وب با اسکریپت kodcloud

برای مثال اگر من یک افزونه برای یک نسخه از لاراول بنویسم که از کلاس های اصلی لاراول اکستند شده باشد، ممکن است در نسخه ی بعدی، تغییراتی در کلاس های اصلی ای که از آنها استفاده کردم، ایجاد شود و افزونه ی من با خطا مواجه شود.

بروزرسانی های طولانی تر بهتر است

من به شخصه ترجیه می دهم این اتفاق هر دو سال یکبار بیفتد.

یعنی برای من بهتر است فریم ورکی که استفاده میکنم، انقدر کامل و توسعه پذیر باشد، که برای نسخه های جدیدتر عجله ای نداشته باشم.

حال اگر در طول سال چندین بروزرسانی اساسی برای فریم ورکی که از آن استفاده میکنم ارائه شود، من دو راه بیشتر ندارم:

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

هر چقدر بازه ی زمانی ارائه ی نسخه های جدید یک فریم ورک کمتر باشد، همگام بودن با آخرین تغییرات نسخه های جدید برای برنامه نویسانی که از آن استفاده میکنند سخت تر خواهد بود.

خوشبختانه فریم ورک Yii2 انقدر کامل و توسعه پذیر است که به جای ارائه ی نسخه های متعدد از خود فریم ورک، نسخه های متعددی از افزونه های مورد استفاده در فریم ورک ارائه می شود.

بنابراین برنامه نویسان مجبور نیستند با تغییرات اساسی در فریم ورک مواجه شوند، بلکه میتوانند در صورت لذوم با افزونه هایی که استفاده میکنند همگام شوند.

در واقع فریم ورک Yii هر چند سال یک بروزرسانی اساسی ارائه می دهد و این فرصت را به برنامه نویسان می دهد تا بتوانند از نسخه ی قبلی به طور کامل به نسخه ی جدید تغییر مسیر دهند.

بدون اینکه نگران زمان فرارسیدن مجدد اسباب کشی به نسخه ی بعدی باشند.

دلیل هفتم: Yii Advance مالتی اپلیکیشن

فریم ورک Yii دو حالت مختلف برای ساخت وب اپلیکیشن های پیچیده و ساده را تحت عنوان Yii Basic و Yii Advance ارائه میدهد.

در نسخه ی Advance ، شما میتوانید چندین وب اپلیکیشن جدا داشته باشید، که همگی با هم یکپارچه هستند.

برای مثال پروژه ی یک فروشگاه اینترنتی پیچیده را در نظر بگیرید که شامل چند برنامه به شرح ذیل است:

  • فرانت اند سایت(بخشی که کاربران میهمان با آن کار میکنند، در واقع ویترین فروشگاه)
  • بک اند سایت(پنل مدیریت سایت)
  • پروفایل کاربران
  • پنل فروشندگان و تامین کنندگان

هر یک از بخش های بالا در واقع فرآیند های خاص خود را دارند.

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

چیزی که برای من از همه جذاب تر است، امکان فعال یا غیر فعال سازی یک ماژول یا کامپوننت در برنامه های مختلف است.

شاید از این مقاله خوشتون بیاد:  بازدید از کارگاه تولیدی شرکت استیل سازه شرق

اینکه بتوانید دسترسی را در ماژول ها کنترل کنید، یعنی دست شما برای اعمال هرگونه تفاوت و یا شباهت بین برنامه های نوشته باز است.

Yii Advance واقعا امکان پیشرفه ای هست، که با تجربه ای که من در برنامه نویسی داشته ام، در فریم ورک های دیگر به راحتی قابل استفاده و یا پیاده سازی نیست، اما اینجا این قابلیت در ساختار هسته ی Yii وجود دارد.

دلیل هشتم: MVC

فریم ورک Yii2 کاملا از مدل برنامه نویسی MVC یا Model,Controller,View پشتیبانی می کند.

این مدل برنامه نویسی به توسعه دهنده کمک می کند، منطق برنامه را از کدهای مربوط به بانک داده و بخش بصری جدا کند.

در این صورت کدها بین بخش های مختلف تقسیم شده و برنامه در عین پیچیدگی بسیار قابل فهم و ساده می شود.

دلیل نهم: پشتیبانی کامل PHPStorm از فریم ورک Yii2

 تقریبا همه ی برنامه نویسان حرفه ای PHP از IDE محبوب و کامل PHPStorm استفاده می کنند.

این IDE دارای افزونه های زیادی هست، اما من بسیار از این بابت خوشحالم که فریم ورک Yii2 به طور کامل با PHPStorm سازگار است و این IDE محبوب می تواند همه ی کدهای نوشته شده را به خوبی تحلیل و ارتباط بخش های مختلف را دریابد.

زمانی که یک دستیار خوب در برنامه نویسی داشته باشید، سرعت شما در برنامه نویسی چندین برابر می شود، ضمن اینکه باگ های کمتری را تجربه خواهید کرد.

دلیل دهم: مدیریت قوی Asset ها

در اغلب فریم ورک های PHP شما باید به طور دستی وجود یا عدم وجود فایل های Js و Css را مدیریت کنید.

آن هم با شرط و شروط مختلف که باید خودتان بنویسید.

اما در Yii داستان متفاوت است، شما می توانید Assetها را با Asset Manager مدیریت کنید، اگر هم علاقه ای به استفاده از Asset Manager ندارید، میتوانید به صورت دستی این کار را انجام دهید.

با این قابلیت، شما می توانید وجود تعدادی از Asset ها را به وجود Asset های دیگر وابسته کنید.

مثلا میتوانید به yii2 بگویید، ابتدا Jquery را در Html نهایی بارگذاری کند و سپس Asset های شما را در Html نهایی قرار دهد. برای اطلاعات بیشتر در این مورد می توانید از سایت Yii کمک بگیرید.

جمع بندی

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

من متوجه شدم، کدنویسی با فریم ورک یی به واسطه ی ماژول کاربردی Gii سریع تر و راحت تر است.

مدل ها در Yii به راحتی به فرم ها متصل می شوند، و همه ی داده های ورودی را با تکنولوژی هایی مانند سناریو سازی کنترل میکنند.

کامپوننت ها عالی عمل می کنند، قابلیت مالتی اپلیکیشن در Yii Advance وسعت عمل زیادی به من می دهد.

سیستم کش، مدیر Asset ها، قابلیت های ماژول ها، همه و همه عالی هستند.

انتخاب شما چیست؟


غلامرضا بهشتیان

من غلامرضا بهشتیان، عاشق نوشتن مقاله های مفید در حوزه ی وب هستم. امیدوارم مقالات نوشته شده نظر شما خوانندگان عزیز را جلب نماید.

3 دیدگاه

رضا صفایی · فروردین ۱۸, ۱۳۹۸ در ۱۰:۴۰ ق.ظ

بله کاملا درست است…من تازه با فریمورک yii2 اشنا شدم و دارم از برنامه نویسی با این فریمورک لذت میبرم

اکرم · تیر ۱۶, ۱۳۹۸ در ۶:۴۸ ق.ظ

سلام ممنون از مقاله خوبتون
yii از این نظر که هر چند سال یک بار بروز میشه امنیت برنامه نویسی بیشتر میشه ضمن اینکه برای دیگر فریمورک ها میشه از نسخه lts استفاده کرد که پشتیبانی بلند مدت داره .
gii رو داره حقیقتا ارزرشمنده مدلها scenario سازی دارن , اعتبار سنجی سمت کلاینت و سیستم routing دیفالت . که نقات قوت یی هست در مقایسه یا لاراول همینطور grid داخلی یی.

در مورد نصب کامپوننت ها و mvc و phpstorm در هر دو و بیشتر فریمورک ها وجود داره
اما موتور blade و جامعه بیشتر لاراول و داکیومنت و پشتیبانی آموزشهای قوی و بازار کار اینها نقات قوت لاراول درمقایسه با یی هست

خوبه اینها رو دونست و بعد با خیال راحت و اگاهانه انتخاب کرد

    غلامرضا بهشتیان · تیر ۱۹, ۱۳۹۸ در ۲:۵۸ ب.ظ

    سلام
    ممنون از نظر ارزشمندی که دادید
    همه ی صحبت های شما کاملا صحیح است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *