Yii2 یک چارچوب برنامه وب MVC PHP با منبع آزاد و شی گرا ، مبتنی بر مؤلفه است.  Yii به عنوان “Yee” یا [ji:] تلفظ می شود و در چینی به معنای “ساده و تکاملی” است و می تواند مخفف “بله همین است!” باشد.

تاریخچه فریم ورک yii2

Yii به عنوان یک تلاش برای رفع اشکالات در چارچوب PRADO است که در اکتبر ۲۰۰۶ ، پس از ده ماه توسعه اولین نسخه آلفای Yii منتشر شد و پس از آن نسخه رسمی ۱٫۰۰ در دسامبر ۲۰۰۸ منتشر شد.

 Yii 1.1 در ژانویه ۲۰۱۰ منتشر شد و با ایجاد سازنده فرم ، نمایش مربوط به سوابق و یک چارچوب آزمایش و موارد دیگر اضافه شده بودند، همچنین انجمن Yii شاخه ۱٫۱ را با پشتیبانی و اصلاحات PHP7 دنبال می کند.  آخرین نسخه ۱٫۱٫۲۱ در آوریل ۲۰۱۹ به بازار آمد.

 در ماه مه ۲۰۱۱ ، توسعه دهندگان تصمیم گرفتند از نسخه های جدید PHP استفاده کنند و کاستی های معماری را برطرف کنند و نتیجه آن نسخه ۲٫۰ باشد.  در ماه مه ۲۰۱۳ ، کد Yii 2.0 به بازار آمد و پس از آن اولین نسخه پایدار در اکتبر ۲۰۱۴٫ PHP7 از نسخه ۲٫۰٫۹ پشتیبانی می شود.

ویژگی های فریم ورک yii2 شامل:

  • الگوی طراحی مدل-نمایش-کنترل (MVC).
  • خدمات WSDLومدیریت خدمات وب.
  • بین المللی سازی و محلی سازی (I18N و L10N)، شامل ترجمه پیام، قالب بندی تاریخ و زمان، قالب بندی شماره و محلی سازی رابط.
  • طرح ذخیره سازی لایه ای که از ذخیره سازی داده ها، ذخیره سازی صفحه، ذخیره سازی قطعه و محتوای پویا پشتیبانی می کند. محیط ذخیره سازی را می توان تغییر داد.
  • خطا در پردازش و ورود به سیستم. ورود به سیستم ها را می توان طبقه بندی کرد، فیلتر شده و به مقصد های مختلف هدایت می شوند.
  • تست واحد و عملکرد بر اساس PHPunit و سلنیوم.
  • تولید کد خودکار برای نرم افزار Skeleton، برنامه های CRUD از طریق ابزار GII.
  • کد تولید شده توسط اجزای YII و ابزار خط فرمان به استاندارد XHTML مطابقت دارد.

برنامه های افزودنی

پروژه YII شامل برنامه های کاربردی نیز هست وهمچنین یک کتابخانه فرمت رسمی ZII، که در نهایت با چارچوب برنامه ترکیب شده است وجود دارد. در هر نسخه از Yii نسخه ۱٫۱٫۰ همراه است و شامل برنامه های اضافه تر و ویدجت مانند شبکه های جیبی و جی کوئری است.

مستندات

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

صدور مجوز

YII تحت مجوز جدید BSD منتشر می شود. این بدان معنی است که می توانید از آن رایگان استفاده کنید و از برنامه های کاربردی وب و همچنین منبع کد باز بهره ببرید. متن موجود در اسناد رسمی YII عمومی اسناد رایگان GNU (GFDL) مجوز دارد. به طور کلی، محتوای مستند سازی YII می تواند کپی، اصلاح و توزیع شود.

۷ دلیل برای انتخاب فریم ورک yii2

  • نصب آسان

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

  • استفاده از فناوری های نوین

Yii2 یک چارچوب خالص OOP است و از برخی از ویژگی های پیشرفته تر PHP ، از جمله اتصال استاتیک،کلاس ها و رابط های SPL و توابع ناشناس استفاده می کند. همه کلاس ها دارای اسامی نام هستند و به شما امکان می دهد تا از autoloader سازگار با PSR-4 استفاده کنید.

  • گستردگی زیاد

Yii مانند کت و شلوار است که از قفسه بسیار عالی به نظر می رسد، اما متناسب بودن با نیازهای شما نیز مهم ست.  تقریباً هر مؤلفه چارچوب قابل توسعه است.  یک مثال ساده اضافه کردن شناسه منحصر به فرد به کد Yii2است.

  • کاهش کدگذاری دستی و افزایش سرعت

با همکاری Yii2 ، توسعه دهندگان می توانند از پسوندی به نام Gii استفاده کنند.  این کد به طور خودکار تولید می شود، Gii بلوک ها و تکه هایی از کد را که اغلب مورد استفاده قرار می گیرند در اختیار برنامه نویسان قرار می دهد (چیزی شبیه به ویژگی خودکار در هنگام ارسال پیامک) و به آنها قطعه قطعه گفته می شود که چگونه کدگذاری با Gii انجام شود،

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

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

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

  • امنیت

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

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

  • زمان توسعه دادن را کوتاه کنید

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

یکی از قدرتمندترین این ابزارها “Gii” نام دارد.  Gii ابزاری برای کد مبتنی بر وب است که به شما امکان می دهد به سرعت الگوهای کد را ایجاد کنید برای:

  1. مدل ها
  2. کنترل کننده ها
  3. فرم ها
  4. ماژول ها
  5. برنامه های افزودنی
  6. اقدامات و دیدگاه های کنترل کننده CRUD

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

if (YII_ENV_DEV) {
    // ...
    $config['modules']['gii'] = [
        'class' => 'yii\gii\Module',
        'allowedIPs' => ['127.0.0.1', '::1']
    ]
}

اینکار تضمین می کند که Gii فقط در صورت تنظیم متغیر محیط Yii بارگذاری می شود و تنها در صورت دستیابی از طریق localhost بارگیری می شود.

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

 چندین ابزار خط فرمان نیز وجود دارد که به کمک آنها می توانید الگوهای ایجاد کد برای دیتابیس ، ترجمه پیام (I18N) و اتصالات پایگاه داده برای آزمایش های خودکار خود را در اختیار داشته باشید.  به عنوان مثال ، می توانید یک فایل دیتابیس جدید با این دستور ایجاد کنید:

yii migrate/create create_user_table

این یک الگوی جدید در {appdir} / است.

<?php

    use yii\db\Schema;

    class m140924_153425_create_user_table extends \yii\db\Migration
    {
        public function up()
        {

        }

        public function down()
        {
            echo "m140924_153425_create_user_table cannot be reverted.\n";

            return false;
        }
}

بنابراین می گوییم ما می خواستیم چند ستون به این جدول اضافه کنیم. ما موارد زیر را به روش up اضافه می کنیم:

public function up()
{
    $this->createTable('user', [
        'id' => Schema::TYPE_PK,
        'username' => Schema::TYPE_STRING . ' NOT NULL',
        'password_hash' => Schema:: TYPE_STRING . ' NOT NULL'
    ], null);
}

و سپس برای اطمینان از اینکه می توانیم این نمونه را معکوس کنیم ، روش پایین را ویرایش می کنیم:

public function down()
{
    $this->dropTable('user');
}

جدول به سادگی شامل اجرای یک دستور در خط فرمان است:

./yii migrate

و برای جدا کردن جدول:

./yii migrate/down
  • آسان برای تنظیم بهتر برای عملکرد بهتر

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

 تمام قسمتهای حافظه پنهان Yii از yii / caching / Cache گسترش می یابد ، این امکان را به شما می دهد تا هنگام استفاده از API ، هر سیستم حافظه پنهانی را که می خواهید انتخاب کنید.  حتی می توانید چندین مؤلفه کش را به طور همزمان ثبت کنید.  Yii در حال حاضر از ذخیره سازی پایگاه داده و فایل سیستم و همچنین APC ، Memcache ، Redis ، WinCache ، XCache و Zend Data Cache پشتیبانی می کند.

 اگر به طور پیش فرض ،از Active Record استفاده می کنید ، Yii یک درخواست بیشتر را برای تعیین طرح جدول (های) درگیر در تولید مدل شما انجام می دهد.  با ویرایش پرونده پیکربندی اصلی خود می توانید برنامه را برای ذخیره این طرحواره تنظیم کنید:

return [
    // ...
    'components' => [
        // ...
        'db' => [
            // ...
            'enableSchemaCache' => true,
            'schemaCacheDuration' => 3600,
            'schemaCache' => 'cache',
        ],
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
    ],
];

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

./yii asset/template config.php

سپس پیکربندی را ویرایش کنید و مشخص کنید که کدام ابزارها را می خواهید کوچک سازی کنید (به عنوان مثال ، کامپایلر بسته شدن ، کمپرسور YUI یا UglifyJS).