مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

آموزش ساخت افزونه در فریمورک Yii


قصد داریم در این بخش یک افزونه (extension) ساده ایجاد کنیم که برای ما یک پیام "Hello World" را نمایش دهد. این افزونه از طریق repository یا مخزن Packagist توزیع خواهد شد.

مرحله 1 - یک پوشه به نام hello-world را در هارد دیسک خود ایجاد کنید (نه در قالب اولیه  برنامه Yii).در داخل پوشه hello world، یک فایل با نام  composer.json  با کد زیر ایجاد کنید.

{
    "name": "tutorialspoint/hello-world",
    "authors": [
        {
            "name": "tutorialspoint"
        }
    ],
    "require": {},
    "autoload": {
        "psr-0": {
            "HelloWorld": "src/"
        }
    }
}

توسط کدهای بالا ما اعلام کردیم که از استاندارد PSR-0 استفاده می کنیم و تمام فایل های افزونه در زیر پوشه src قرار می گیرند.

مرحله 2 – پوشه HelloWorld را در مسیر زیر ایجاد کنید: hello-world/src/HelloWorld.

مرحله 3 - داخل پوشه HelloWorld، یک فایل با نام SayHello.php با کد زیر ایجاد کنید.

<?php
   namespace HelloWorld;
   class SayHello {
      public static function world() {
         return 'Hello World, Composer!';
      }
   }
?>

همانطور که می بینید ما داخل کلاس SayHello یک تابع استاتیک به نام world تعریف کردیم، که پیام سلام ما را برمی گرداند.

مرحله 4 – افزونه ما آماده است. اکنون یک مخزن (repository) خالی را در حساب github خود ایجاد کنید و این افزونه را در آنجا push کنید.

داخل پوشه hello world این دستورات را اجرا کنید -

git init
git add
git commit -m “initial commit”
git remote add origin <YOUR_NEWLY_CREATED_REPOSITORY>
git push -u origin master

ما افزونه خود را به github فرستادیم. اکنون به https://packagist.org بروید، و وارد حساب کاربری خود شوید و در منوی بالا روی “submit” کلیک کنید.

در اینجا شما یک صفحه خواهید دید که باید برای انتشار آن repository یا مخزن github خود را وارد کنید.

مرحله 5 - بر روی دکمه "check" کلیک کنید. با این کار افزونه ی شما منتشر می شود.

مرحله 6 -  به اپلیکیشن پایه بروید و افزونه را به composer.json اضافه نمایید.

{
   "name": "yiisoft/yii2-app-basic",
   "description": "Yii 2 Basic Project Template",
   "keywords": ["yii2", "framework", "basic", "project template"],
   "homepage": "http://www.yiiframework.com/",
   "type": "project",
   "license": "BSD-3-Clause",
   "support": {
      "issues": "https://github.com/yiisoft/yii2/issues?state=open",
      "forum": "http://www.yiiframework.com/forum/",
      "wiki": "http://www.yiiframework.com/wiki/",
      "irc": "irc://irc.freenode.net/yii",
      "source": "https://github.com/yiisoft/yii2"
   },
   "minimum-stability": "dev",
   "prefer-stable" : true,
   "require": {
      "php": ">=5.4.0",
      "yiisoft/yii2": ">=2.0.5",
      "yiisoft/yii2-bootstrap": "*",
      "yiisoft/yii2-swiftmailer": "*",
      "kartik-v/yii2-widget-datetimepicker": "*",
      "tutorialspoint/hello-world": "*"
   },
   "require-dev": {
      "yiisoft/yii2-codeception": "*",
      "yiisoft/yii2-debug": "*",
      "yiisoft/yii2-gii": "*",
      "yiisoft/yii2-faker": "*"
   },
   "config": {
      "process-timeout": 1800
   },
   "scripts": {
      "post-create-project-cmd": [
         "yii\\composer\\Installer::postCreateProject"
      ]
   },
   "extra": {
      "yii\\composer\\Installer::postCreateProject": {
         "setPermission": [
            {
               "runtime": "0777",
               "web/assets": "0777",
               "yii": "0755"
            }
         ],
         "generateCookieValidationKey": [
            "config/web.php"
         ]
      },
      "asset-installer-paths": {
         "npm-asset-library": "vendor/npm",
         "bower-asset-library": "vendor/bower"
      }
   }
}

 

مرحله 7 - داخل پوشه root پروژه شوید و composer update را اجرا کنید تا تمام dependency ها را نصب یا به روز کند.

مرحله 8 - افزونه ما باید نصب شود. برای استفاده از آن، view با نام About را که در متد ActionAbout در کنترلر SiteController قرار دارد را ویرایش کنید.

<?php
   /* @var $this yii\web\View */
   use yii\helpers\Html;
   $this->title = 'About';
   $this->params['breadcrumbs'][] = $this->title;
   $this->registerMetaTag(['name' => 'keywords', 'content' => 'yii, developing, views,
      meta, tags']);
   $this->registerMetaTag(['name' => 'description', 'content' => 'This is the
      description of this page!'], 'description');
?>
<div class = "site-about">
   <h1><?= Html::encode($this->title) ?></h1>
   <p>
      This is the About page. You may modify the following file to customize its content:
   </p>
   <h1><?= HelloWorld\SayHello::world();  ?></h1>
</div>

مرحله 9 - در مرورگر وبتان آدرس http://localhost:8080/index.php?r=site/about  را تایپ کنید. حال پیام  hello world از افزونه ما را خواهید دید.

فصلِ: 14 , تعداد قسمت ها: 188 , سطح: صفر تا صد

این فصل در یک نگاه:

سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…
فصلِ: 8 , تعداد قسمت ها: 77 , سطح: صفر تا صد

این فصل در یک نگاه:

  پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید