Статьи

Перше знайомство: Генерація коду за допомогою Gii

  1. запускаємо Gii ¶
  2. Генерація класу Active Record ¶
  3. Створення CRUD коду ¶
  4. Відчуваємо в дії ¶
  5. висновок ¶

У цьому розділі ми опишемо, як використовувати Gii для автоматичної генерації коду, що реалізує деякі загальні функції сайту. Для досягнення цієї мети все, що вам потрібно, це просто ввести необхідну інформацію відповідно до інструкцій, відображеними на веб-сторінках Gii.

У цьому керівництві ви дізнаєтеся:

  • Як активувати Gii в додатку;
  • Як використовувати Gii для створення Active Record класу;
  • Як використовувати Gii для генерації коду, що реалізує CRUD для таблиці БД.
  • Як налаштувати код, що генерується Gii.

запускаємо Gii

Gii представлений в Yii як модуль . Ви можете активувати Gii, налаштувавши його у властивості modules . Залежно від того, яким чином ви створили додаток, ви можете переконатися в наявності наступного коду в конфігураційному файлі config / web.php,

$ Config = [...]; if (YII_ENV_DEV) {$ config [ 'bootstrap'] [] = 'gii'; $ Config [ 'modules'] [ 'gii'] = [ 'class' => 'yii \ gii \ Module',]; }

Наведена вище конфігурація показує, що перебуваючи в режимі розробки , Додаток повинен включати в себе модуль з ім'ям gii, який реалізує клас yii \ gii \ Module.

Якщо ви подивіться вхідний скрипт web / index.php вашого застосування, ви побачите наступний рядок, яка встановлює константу YII_ENV_DEV в значення true.

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

Завдяки цьому рядку ваше додаток знаходиться в режимі розробки, і Gii вже активований відповідно до описаної вище конфігурацією. Тепер ви можете отримати доступ до Gii за наступною адресою:

http:

Примітка: Якщо ви намагаєтеся отримати доступ до Gii ні з локального хоста, за замовчуванням, з метою забезпечення безпеки, доступ буде заборонений. Ви можете змінити налаштування Gii, щоб додати дозволені IP адреси, як зазначено нижче

'Gii' => [ 'class' => 'yii \ gii \ Module', 'allowedIPs' => [ '127.0.0.1', ':: 1', '192.168.0. *', '192.168.178.20' ]],

Генерація класу Active Record

Щоб використовувати Gii для генерації класу Active Record, виберіть "Генератор моделі" (натиснувши на посилання на головній сторінці Gii). І заповніть форму наступним чином:

  • Ім'я таблиці: country
  • Клас моделі: Country

Ім'я таблиці: country   Клас моделі: Country

Потім натисніть на кнопку "Попередній перегляд". Ви побачите, що models / Country.php перерахований в результатах створюваних файлів класів. Ви можете натиснути на ім'я файлу класу для перегляду його вмісту.

Якщо ви вже створили такий же файл і хочете перезаписати його, натисніть кнопку diff поруч з ім'ям файлу, щоб побачити відмінності між генеруються кодом і існуючою версією.

Для перезапису існуючого файлу встановіть прапорець поруч із "overwrite" і натисніть кнопку "Generate". Для створення нового файлу ви можете просто натиснути "Generate".

Після цього ви побачите сторінку підтвердження, що вказує на те, що код був успішно згенерований. Якщо файл існував до цього, ви також побачите повідомлення про те, що він був перезаписан заново згенерував кодом.

Створення CRUD коду

CRUD розшифровується як Create, Read, Update і Delete, що надає чотири основні функції, що виконуються над даними на більшості веб-сайтів. Щоб створити функціональність CRUD використовуючи Gii, виберіть "CRUD Генератор" (натиснувши на посилання на головній сторінці Gii). Для нашої таблиці «country» заповніть отриману форму наступним чином:

  • Model Class: app \ models \ Country
  • Search Model Class: app \ models \ CountrySearch
  • Controller Class: app \ controllers \ CountryController

Model Class: app \ models \ Country   Search Model Class: app \ models \ CountrySearch   Controller Class: app \ controllers \ CountryController

Потім натисніть на кнопку "Preview". Ви побачите список файлів, які будуть створені, як показано нижче.

Ви побачите список файлів, які будуть створені, як показано нижче

Якщо ви вже створили файли controllers / CountryController.php і views / country / index.php (в розділі про базах даних), встановіть прапорець "overwrite", щоб замінити їх. (Попередні версії не підтримують CRUD повністю)

Відчуваємо в дії

Щоб побачити як все це працює, перейдіть за наступним URL, використовуючи ваш браузер:

http:

Ви побачите таблицю, яка показує країни з таблиці БД. Ви можете сортувати, а також фільтрувати дані, вказуючи умови фільтрації в заголовках стовпців.

Для кожної яка відображається в таблиці країни ви можете переглянути детальну інформацію, оновити або видалити її. Ви також можете натиснути на кнопку "Створити країну" в верхній частині таблиці для отримання форми створення нової країни.

Ви також можете натиснути на кнопку Створити країну в верхній частині таблиці для отримання форми створення нової країни

Нижче наведено список файлів, створених за допомогою Gii, в тому випадку, якщо ви захочете дослідити реалізацію цих функцій, або змінити їх:

  • Контролер: controllers / CountryController.php
  • Моделі: models / Country.php і models / CountrySearch.php
  • Вид: views / country / *. Php

Інформація: Gii розроблений як тонконастраіваемий і розширюваний інструмент генерації коду. Використовуючи його з розумом, ви можете значно прискорити швидкість розробки додатків. Для більш докладної інформації, будь ласка, зверніться до розділу Gii .

висновок

У цьому розділі ви дізналися, як використовувати Gii для генерації коду, що реалізує повну функціональність CRUD для даних, що зберігаються в таблиці бази даних.

Новости