Yii2da extension yaratish
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 loyiha 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 loyihamizga 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:
Birinchi bo‘ling!