Yii2da extension yaratish

XsgCfBtc6cGDHaYdrwy3_10.png

Ushbu maqolada yii2 freymvork uchun kengaytma(extension) yaratishni ko’ramiz. Ushbu kengaytmamiz oddiygina “Hello world” xabarini chiqaradi. Bu kengaytmamiz Packagist repositoriyasi orqali foydalaniladi.

1-qadam. Kompyuterda hello-world nomli papka yaratamiz(Yii proyekt papkasi ichida emas). hello-world papkasida esa composer.json nomli fayl yaratamiz va unga quyidagilarni yozamiz:

{

    "name": "mytest/hello-world",

    "authors": [

        {

            "name": "iauthor"

        }

    ],

    "require": {},

    "autoload": {

        "psr-0": {

            "HelloWorld": "src/"

        }

    }

}

Bu koddan PSR-0 standartidan foydalanayotganimizni va barcha fayl, papkalarimiz src papkasida joylashganini bilishimiz mumkin.

***PSR standartlar. PHP Standard Recommendation(PSR) – bu PHP Framework Interop Group tomonidan chop qilingan PHP dagi texnik xususiyat hisoblanadi. Javadagi Java Specification Requestga o’xshash bo’lib, u PHPdagi dasturlash tushunchalarini standartlari sifatida xizmat qiladi. Ushbu texnik xususiyatdan maqsad komponentlarning o’zaro moslashuvchanligi hamda optimal dasturlash va testlashdagi isbotlangan tushunchalarni ishlatishning umumiy texnik asoslari bilan ta’minlashdir. PHP-FIG bir qancha PHP freymvorklarini yaratuvchilar tomonidan tuzilgan.

Har bir PSR o’zi foydalanadigan protokoliga qarab a’zolar tomonidan taklif qilingan va tanlab olingan.***

PSR-0 avtoyuklagich qo’shishi kerak bo’ladigan majburiy talablarni ko’rsatadi.

2-qadam. Quyidagicha papka yaratamiz: hello-worl/src/HelloWorld.

3-qadam. HelloWorld papkasida SayHello.php faylini yaratib, unga quyidagi kodni yozamiz:

<?php

   namespace HelloWorld;

   class SayHello {

      public static function world() {

         return 'Hello World, Composer!';

      }

   }

?>

SayHello klassini world static funksiyasi bilan e’lon qildik. Bu funksiya hello xabarini qaytaradi.

4-qadam. Kengaytmamiz tayyor! Endi uni githubga joylashtiramiz. Buning uchun githubda bo’sh repositoriy yaratamiz va kengaytmamizni unga joylashtiramiz. Buning uchun hello-world papkamiz ichida quyidagi buyruqlarni ketma-ketlikda ishga tushiramiz:

  • git init
  • git add .
  • git commit –m “initial commit”
  • git remote add origin <o’zingiz_yaratgan_yangi_repositoriya>
  • git push –u origin master

Hozirgina o’zimizning kengaytmamizni githubga qo’shdik. Endi, https://packagist.org saytiga kiramiz va menyudagi “submit” tugmasini bosamiz. Bunda github repositoryni e’lon qilish uchun kiritiladigan oyna ochiladi:

5-qadam. Check tugmasini bosib kengaytmamizni e’lon qilamiz.

6-qadam. Endi kengaytmani yii2 proyektimizga qo’shsak bo’ladi.

composer require mytest/hello-world

7-qadam. Kengaytmamiz o’rnatilganidan keyin uni ishlatib ko’ramiz. SiteControllerning actionAbout metodini quyidagicha o’zgartiramiz:

<?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>

Natijani http://localhost:8080/index.php?r=site/about havolasi orqali ko’rish mumkin. Ekranda hello world xabari chiqadi.

Manba: tutorialspoint