Yii2 framework backup
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

6.3 KiB

Generowanie kodu w Gii

Ta sekcja opisuje jak używać Gii do automatycznego generowania kodu, który implementuje podstawowe funkcjonalności do aplikacji Web. Używanie Gii do automatycznego generowania kodu jest po prostu kwestią wprowadzenia odpowiednich informacji w formularzach zgodnie z instrukcjami widocznymi na podstronach Gii.

W tym poradniku nauczysz się:

  • aktywować Gii w Twojej aplikacji,
  • używać Gii do generowania klas Active Record,
  • używać Gii do generowania kodu implementującego operacje CRUD dla tabel bazy danych,
  • dostosować kod wygenerowany przez Gii,

Początki z Gii

Gii jest dostarczonym przez Yii modułem. Możesz aktywować Gii konfigurując właściwość yii\base\Application::modules aplikacji. Zależnie od tego, jak utworzyłeś swoją aplikację, może się okazać, że poniższy kod jest już zawarty w pliku konfiguracyjnym config/web.php:

$config = [ ... ];

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

Powyższa konfiguracja sprawdza, czy aplikacja jest w środowisku rozwojowym, jeśli tak, dołącza moduł gii określając klasę modułu yii\gii\Module.

Jeśli sprawdzisz skrypt wejściowy web/index.php Twojej aplikacji, zauważysz linię, która ustawia YII_ENV na wartość dev.

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

Dzięki tej linii, Twoja aplikacja jest w trybie rozwojowym, przez co aktywny jest moduł Gii. Możesz teraz uzyskać dostęp do Gii przez przejście pod podany adres URL:

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

Note: Jeśli próbujesz dostać się do Gii z maszyny innej niż localhost, dostęp domyślnie będzie zablokowany ze względów bezpieczeństwa. Możesz dodać dozwolone adresy IP następująco:

'gii' => [
    'class' => 'yii\gii\Module',
    'allowedIPs' => ['127.0.0.1', '::1', '192.168.0.*', '192.168.178.20'] // adjust this to your needs
],

Gii

Generowanie klasy Active Record

Aby użyć Gii do wygenerowania klasy Active Record, wybierz "Model Generator" z odnośników na stronie głównej Gii. Następnie uzupełnij formularz następująco:

  • Table Name: country
  • Model Class: Country

Generator modeli

Następnie, kliknij przycisk "Preview". Powinieneś zauważyć na liście plik models/Country.php który zostanie utworzony. Możesz kliknąć w nazwę pliku aby zobaczyć podgląd jego zawartości.

Podczas używania Gii, jeśli posiadałeś już utworzony plik o tej samej nazwie i będziesz chciał go nadpisać, kliknij w przycisk diff obok nazwy pliku aby zobaczyć różnice w kodzie pomiędzy wygenerowanym a już istniejącym plikiem.

Podgląd generatora modeli

Podczas nadpisywania istniejącego już pliku musisz zaznaczyć opcję "overwrite", a kolejnie kliknąć przycisk "Generate". Jeśli tworzysz nowy plik, wystarczy jeśli klikniesz "Generate".

Następnie zobaczysz stronę potwierdzającą, że kod został pomyślnie wygenerowany. Jeśli nadpisywałeś istniejący już plik, zobaczysz również wiadomość o nadpisaniu go nowo wygenerowanym kodem.

Generowanie kodu CRUD

CRUD oznacza tworzyć, czytać, aktualizować oraz usuwać (Create-Read-Update-Delete), reprezentuje cztery podstawowe zadania dotyczące obsługi danych w większości serwisów internetowych. Aby utworzyć funkcjonalność CRUD używając Gii, wybierz na stronie głównej Gii "CRUD Generator". Do przykładu "country" uzupełnij formularz następująco:

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

Generator CRUD

Następnie kliknij przycisk "Preview". Zobaczysz listę plików które zostaną wygenerowane, tak jak pokazano niżej.

Podgląd generatora CRUD

Jeśli wcześniej utworzyłeś pliki controllers/CountryController.php oraz views/country/index.php (w sekcji baz danych tego poradnika), zaznacz opcję "overwrite" aby je zastąpić (Poprzednia wersja nie posiada pełnego wsparcia CRUD).

Próba

Aby zobaczyć jak działa nowo wygenerowany kod użyj przeglądarki aby uzyskać dostęp do podanego adresu URL:

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

Zobaczysz tabelę prezentującą kraje z bazy danych. Możesz sortować tabelę, lub filtrować ją przez wpisanie odpowiednich warunków w nagłówkach kolumn.

Dla każdego wyświetlanego kraju możesz zobaczyć jego szczegóły, zaktualizować go lub usunąć. Możesz również kliknąć przycisk "Create Country" aby przejść do formularza tworzenia nowego państwa.

Siatka danych krajów

Aktualizacja kraju

Poniżej przedstawiamy listę plików wygenerowanych przez Gii, jeśli chciałbyś zbadać jak zostały zaimplementowane te funkcjonalności (lub je edytować):

  • Kontroler: controllers/CountryController.php
  • Model: models/Country.php and models/CountrySearch.php
  • Widok: views/country/*.php

Info Gii zostało zaprojektowane jako wysoce konfiguralne i rozszerzalne narzędzie przeznaczone do generowania kodu. Prawidłowe używanie go może znacznie przyspieszyć szybkość tworzenia Twojej aplikacji. Po więcej szczegółów zajrzyj do sekcji Gii

Podsumowanie

W tej sekcji nauczyłeś się jak używać Gii do wygenerowania kodu, który implementuje pełną funkcjonalność CRUD dla treści zawartch w tabelach bazy danych. In this section, you have learned how to use Gii to generate the code that implements complete CRUD functionality for content stored in a database table.