Yii фреймворкын үйренеміз (шәйнектен шәйнектерге). Gii код генераторын пайдалану.

Бұл жолы біз Yii-дің Gii генераторы туралы айтамыз. Бұл құрал жалқауларға арналған десем артық кетпеспін. Ол көптеген кодтарды редакторларда жазып отырмай, тез арада веб интерфейс арқылы генерация жасауға көмектеседі. Сол арқылы көөөп уақытты тежейміз.

Gii негізі yii-дің бір модулі. Егер сіз yii-ді осы мақалалар сериясы бойынша орнатқан болсаңыз, онда gii сізде болуы керек. Оны тексеру үшін мынандай файлдарды қарауға болады. Бірінші 'config/web.php' файлын ашып көріңіз, онда сіз мынандай кодты көруіңізге болады:

$config = [ ... ];

if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = 'yii\debug\Module';

    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = 'yii\gii\Module';
}


Егер біз YII_ENV_DEV ортасында жұмыс жасап жатқан болсақ (яғни, продакшн емес) онда gii модулі іске қосылады. Негізі түсініп тұрған боларсыз yii-де бірнеше орта түсінігі бар, олар бағдарламалау ортасы, тестілеу ортасы және продакшн. Ол орталарды кіру нүктесінде баптауға болады. Мысалы, 'web/index.php' файлын ашып қарасаңыз, онда келесідей кодты табасыз:

defined('YII_ENV') or define('YII_ENV', 'dev');


Бұл код біздің бағдарламалау ортасында жұмыс жасап жатқанымызды білдіреді. Сондықтан біз ештеңені баптамай-ақ gii қолданып көре аламыз. Келесідей адресті браузерде ашыңыз:

http://hostname/index.php?r=gii




Міне осы gii.

Active Record класын генерациялаймыз

Мысалы біз алдыңғы жолы редактормен құрған 'country' Active Record кодын осы gii да генерациялайтын болсақ, оны 'Model Generator' бөліміне кіру арқылы былай жасаймыз:



Енді preview батырмасын бассақ ол бізге, қандай файл генерация жасамақшы болып жатқанын айтады. Егер ондай файл әзірге бар болса (яғни, мысалы gii 'models/Country.php' генерация жасамақшы, ал ол файл менде бар) файлдың қасында 'diff' батырмасы шығады сіз оны басып сізде бар файл мен генерация жасалатын файлдың айырмашылығын көре аласыз.



Ал менде ол файл жоқ, сондықтан менде ол батырма шықпайды:



Екі жағдайдағы Action бағанына назар аударыңыз, бірінде 'overwrite' ол сіздің файлыңыздың үстінен жазылатыны айтылып тұр. Ал екіншісінде 'create' ол файлды жай ғана құрады, өйткені ол файл бізде әлі жоқ.

Егер файлға шертсеңіз қандай код генерациялайтынын көре аласыз:



Генерацияны 'generate' батырмасын басу арқылы жасай аласыз.

Міне осылай сіз контроллерді, форманы, модульдерді, қосымшаларды және ең қызығы CRUD генерация жасай аласыз.

CRUD кодты генерациялау

CRUD бұл абревиатура Create, Read, Update, Delete дегенді білдіреді (құру, оқу, өңдеу, жою). Бұл генерация түрі белгілі бір объектіге осы операциялардың барлығын интерфейс арқылы орындауға мүмкіндік беретін класстарды генерация жасап береді.

Мысалы, айтайық, бізге 'country' яғни мемлекетті қосатын, өшіретін, іздейтін, жоятын функционал керек болсын. Мұндай жағдайда CRUD генераторды пайдалана салуға болады.

Алдымен 'CRUD Generator бетіне кіріңіз' және келесі мәліметтерді енгізіңіз:
Model Class: app\models\Country
Search Model Class: app\models\CountrySearch
Model Class: app\controllers\CountryController



'preview' батырмасын басып қандай файлдар генерация жасалатынын көрейік:



Енді 'Generate' батырмасын басыңыз. Барлық файлдар генерация жасалады.

Енді генерация нәтижесін көрейік. Браузерде мына адресті ашыңыз:

http://hostname/index.php?r=country/index




Мәс саған, бір екі рет шерту арқылы кішігірім веб функционал алдық, енді сіз 'Create Country' батырмасын басу арқылы мемлекетті құра аласыз онымен бірге мемлекетті іздеу, өңдеу, жою құралдары да бар:



Қорытынды

Бұл жолы біз жалқаулардың жолы, кодты генерациялауды қарадық, негізі yii жақсы форматталған код генерация жасайды, сондықтан, оны ұялмай пайдалануға болады. Бірақ продакшн немесе үлкен жобаларға болмаса керек.

Бұл кіріспе мақалалардың соңы. Келесй жолдан бастап, yii-дің әрбір компонентіне тереңірек үңіліп, оларды қарастырамыз. Мақалалар соңына қарай, кішігірім бағдарлама жазатын ойым бар, пікірлерде ой тастап кетсеңіз де болады ;)

  • +3
1 пікір
nurzhol
PHP YII фреймуөркі туралы посттар сериясы кетіп жатыр екен.
Тек тіркелген қолданушылар ғана пікір қалдыра алады.